diff --git a/Plugin/Crack.cpp b/Plugin/Crack.cpp
index a8d76a4b62056918d890a7a2f2d365b5fa816979..403087080ec3599962e76e66d59f15f4ef9dd018 100644
--- a/Plugin/Crack.cpp
+++ b/Plugin/Crack.cpp
@@ -111,6 +111,10 @@ PView *GMSH_CrackPlugin::execute(PView *view)
     }
   }
 
+  std::set<GEntity*> crackEntities;
+  crackEntities.insert(entities.begin(), entities.end());
+  crackEntities.insert(openEntities.begin(), openEntities.end());
+
   // get crack elements
   std::vector<MElement*> crackElements;
   for(unsigned int i = 0; i < entities.size(); i++)
@@ -196,7 +200,8 @@ PView *GMSH_CrackPlugin::execute(PView *view)
   std::vector<GEntity*> allentities;
   m->getEntities(allentities);
   for(unsigned int ent = 0; ent < allentities.size(); ent++){
-    if(allentities[ent]->dim() != dim + 1) continue;
+    //if(allentities[ent]->dim() != dim + 1) continue;
+    if(crackEntities.find(allentities[ent]) != crackEntities.end()) continue;
     for(unsigned int i = 0; i < allentities[ent]->getNumMeshElements(); i++){
       MElement *e = allentities[ent]->getMeshElement(i);
       for(int j = 0; j < e->getNumVertices(); j++){