diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 3d443e936e809f8212ceb000875da5c1fd6cabf6..2b8aaf115afac22979a6fb068773da380f138b6f 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -2066,9 +2066,9 @@ void GModel::save(std::string fileName)
   GModel::setCurrent(temp);
 }
 
-GFaceCompound* GModel::addCompoundFace(std::vector<GFace*> faces, int param, int typeS)
+GFace* GModel::addCompoundFace(std::vector<GFace*> faces, int param, int typeS)
 {
-
+#if defined(HAVE_SOLVER)
   int num =  getMaxElementaryNumber(2) + 1;
 
   std::list<GFace*> comp(faces.begin(), faces.end());
@@ -2085,9 +2085,10 @@ GFaceCompound* GModel::addCompoundFace(std::vector<GFace*> faces, int param, int
   GFaceCompound *gfc = new GFaceCompound(this, num, comp, U0, typ, typeS);
 
   add(gfc);
-
   return gfc;
-
+#else
+  return 0;
+#endif
 }
 
 GVertex *GModel::addVertex(double x, double y, double z, double lc)
diff --git a/Geo/GModel.h b/Geo/GModel.h
index 7ab64098818e05519563901e365ba9781af65294..6548888797b0e4d540ce4ce5fd2b5c8194b0ae7e 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -436,7 +436,6 @@ class GModel
   void setFactory(std::string name);
 
   // create brep geometry entities using the factory
-  GFaceCompound *addCompoundFace(std::vector<GFace*> faces, int typeP, int typeS);
   GVertex *addVertex(double x, double y, double z, double lc);
   GEdge *addLine(GVertex *v1, GVertex *v2);
   GEdge *addCircleArcCenter(double x, double y, double z, GVertex *start, GVertex *end);
@@ -456,6 +455,7 @@ class GModel
   void addRuledFaces(std::vector<std::vector<GEdge *> > edges);
   GFace *addFace(std::vector<GEdge *> edges, std::vector< std::vector<double > > points);
   GFace *addPlanarFace(std::vector<std::vector<GEdge *> > edges);
+  GFace *addCompoundFace(std::vector<GFace*> faces, int typeP, int typeS);
   GRegion *addVolume(std::vector<std::vector<GFace*> > faces);
 
   // create solid geometry primitives using the factory