diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 2acb8f07add77083c5c3fc50c3e27d7a23952d97..6e50e189610b39301be878aa7d672434bb0b0521 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -250,6 +250,19 @@ void GModel::destroyMeshCaches()
   _octree = 0;
 }
 
+void GModel::deleteMesh()
+{
+	for(riter it=firstRegion();it!=lastRegion();++it)
+		(*it)->deleteMesh();
+	for(fiter it=firstFace();it!=lastFace();++it)
+		(*it)->deleteMesh();
+	for(eiter it=firstEdge();it!=lastEdge();++it)
+		(*it)->deleteMesh();
+	for(viter it=firstVertex();it!=lastVertex();++it)
+		(*it)->deleteMesh();
+	destroyMeshCaches();
+}
+
 bool GModel::empty() const
 {
   return vertices.empty() && edges.empty() && faces.empty() && regions.empty();
diff --git a/Geo/GModel.h b/Geo/GModel.h
index 520f4f1bec70e26d385bd1c3a68fbba774e2e030..83d1bf1d2ecd5c5f52f2a62ca0d715ea656301a3 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -151,6 +151,8 @@ class GModel
   // delete all the mesh-related caches (this must be called when the
   // mesh is changed)
   void destroyMeshCaches();
+  //delete the mesh stored in entities and call destroMeshCaches
+  void deleteMesh();
 
   // access internal CAD representations
   GEO_Internals *getGEOInternals(){ return _geo_internals; }
@@ -388,10 +390,10 @@ class GModel
   GEntity *revolve(GEntity *e, std::vector<double> p1, std::vector<double> p2,
                    double angle);
   GEntity *extrude(GEntity *e, std::vector<double> p1, std::vector<double> p2);
-  GEntity *addPipe(GEntity *e, std::vector<GEdge *> edges);
-  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); 
+  GEntity *addPipe(GEntity *e, std::vector<GEdge *>  edges);
+  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);
 
   // create solid geometry primitives using the factory
   GEntity *addSphere(double cx, double cy, double cz, double radius);