diff --git a/Geo/GEntity.h b/Geo/GEntity.h
index 8396c26578bfb300fd05a7bd19b4eb3a8a378d5d..1fe452ccee3945d14d75c3d75ff2a3c5fd88b5a2 100644
--- a/Geo/GEntity.h
+++ b/Geo/GEntity.h
@@ -99,7 +99,10 @@ class GEntity {
     CompoundSurface,
     Volume,
     DiscreteVolume, 
-    CompoundVolume
+    CompoundVolume,
+    PartitionVertex,
+    PartitionEdge,
+    PartitionSurface
   };
 
   // return a string describing the entity type
@@ -140,7 +143,10 @@ class GEntity {
       "Compound surface",
       "Volume",
       "Discrete volume", 
-      "Compound Volume"
+      "Compound Volume",
+      "Partition Vertex",
+      "Partition Edge",
+      "Partition Surface"
     };
     unsigned int type = (unsigned int)geomType();
     if(type >= sizeof(name) / sizeof(name[0]))
diff --git a/Mesh/meshPartition.cpp b/Mesh/meshPartition.cpp
index a0703b31677f2501933347d99b4e23faaba04e1d..2aa005e2c812b4c4f548504db78dd814887366a5 100644
--- a/Mesh/meshPartition.cpp
+++ b/Mesh/meshPartition.cpp
@@ -128,6 +128,9 @@ int PartitionMesh(GModel *const model, meshPartitionOptions &options)
   }
 
   model->recomputeMeshPartitions();
+
+  if (options.createPartitionBoundaries)CreatePartitionBoundaries (model);
+
   Msg::Info("Partitioning complete");
   Msg::StatusBar(1, false, "Mesh");
   return 0;
diff --git a/Mesh/meshPartitionOptions.h b/Mesh/meshPartitionOptions.h
index 03d9be42c00bad1aa1824d9709c47c53f7a4f42e..a290c602457360f27992a49eda3382674e3883a4 100644
--- a/Mesh/meshPartitionOptions.h
+++ b/Mesh/meshPartitionOptions.h
@@ -14,6 +14,8 @@ struct meshPartitionOptions
                                         // 2 - METIS
   int num_partitions;
 
+  bool createPartitionBoundaries;
+
 //--Chaco
 
   int global_method;                    // 1 - Multilevel-KL
@@ -97,6 +99,7 @@ struct meshPartitionOptions
     algorithm = 1;
     edge_matching = 3;
     refine_algorithm = 3;
+    createPartitionBoundaries = false;//true;
   }
 
 };
diff --git a/Numeric/gmshLinearSystemGmm.h b/Numeric/gmshLinearSystemGmm.h
index 83ee875c871c4190eb51e8625d67aa35691c2735..10b1326521d9f455801e379babf7e86143bd10ce 100644
--- a/Numeric/gmshLinearSystemGmm.h
+++ b/Numeric/gmshLinearSystemGmm.h
@@ -111,6 +111,7 @@ public :
   virtual void zeroRightHandSide() {}
   virtual int systemSolve() { return 0; }
   void setPrec(double p){}
+  virtual void clear(){}
   void setNoisy(int n){}
   void setGmres(int n){}
 };