diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp
index a5eac37dc041c5ee4ce09ba9654f1c97abc10b3b..22296bf55d62ddfada7632dada3245ce2e646615 100644
--- a/Geo/GModelIO_OCC.cpp
+++ b/Geo/GModelIO_OCC.cpp
@@ -35,7 +35,8 @@ void OCC_Internals::buildLists()
   addShapeToLists(shape);
 }
 
-void  OCC_Internals::buildShapeFromGModel(GModel* gm){
+void  OCC_Internals::buildShapeFromGModel(GModel* gm)
+{
   somap.Clear();
   shmap.Clear();
   fmap.Clear();
diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp
index cbf2d27dec0f32c5b1542a4db29669de98d1db19..843a2dec8e8f54efc76c9d1182dc5c73b6a3a71e 100644
--- a/Geo/OCCFace.cpp
+++ b/Geo/OCCFace.cpp
@@ -70,6 +70,12 @@ void OCCFace::setup()
       if(!e){
 	Msg::Error("Unknown edge in face %d", tag());
       }
+      else if(edge.Orientation() == TopAbs_INTERNAL){
+        Msg::Info("Adding embedded edge %d", e->tag());
+        embedded_edges.push_back(e);
+        OCCEdge *occe = (OCCEdge*)e;
+        occe->setTrimmed(this);
+      }
       else{
         l_wire.push_back(e);
         Msg::Debug("Edge %d (%d --> %d) ori %d", e->tag(),
@@ -123,6 +129,20 @@ void OCCFace::setup()
   //          (*it)->getBeginVertex()->tag(), (*it)->getEndVertex()->tag(),
   //          (*it)->isSeam(this));
   // }
+
+  /*
+  for(exp2.Init(s, TopAbs_VERTEX); exp2.More(); exp2.Next()){
+    TopoDS_Vertex vertex = TopoDS::Vertex(exp2.Current());
+    GVertex *v = model()->getOCCInternals()->getOCCVertexByNativePtr(model(), vertex);
+    if(!v){
+      Msg::Error("Unknown vertex in face %d", tag());
+    }
+    else if(vertex.Orientation() == TopAbs_INTERNAL){
+      Msg::Info("Adding embedded vertex %d", v->tag());
+      embedded_vertices.push_back(v);
+    }
+  }
+  */
 }
 
 SBoundingBox3d OCCFace::bounds() const