diff --git a/Common/Context.h b/Common/Context.h
index e9121396c3ead20d5a6057fc4162cfd22a45ba16..fe4f8d27eb70850ade6c7871ab9c1e3506a7cb77 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -260,6 +260,7 @@ class CTX {
     int draw, link, horizontalScales;
     int smooth, animCycle, animStep, combineTime, combineRemoveOrig;
     int fileFormat, plugins, forceNodeData, forceElementData;
+    int saveMesh, saveInterpolationMatrices;
     double animDelay;
     std::string doubleClickedGraphPointCommand;
     double doubleClickedGraphPointX, doubleClickedGraphPointY;
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index ffe67a003ff4b06ed14ef47627538b7fd9ae7b29..be289da21f95d4e335dc60abc53f811a23d624f8 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1400,6 +1400,10 @@ StringXNumber PostProcessingOptions_Number[] = {
   { F|O, "Plugins" , opt_post_plugins , 1. ,
     "Enable default post-processing plugins?" },
 
+  { F|O, "SaveInterpolationMatrices" , opt_post_save_interpolation_matrices , 1. ,
+    "Save the interpolation matrices when exporting model-based data" },
+  { F|O, "SaveMesh" , opt_post_save_mesh , 1. ,
+    "Save the mesh when exporting model-based data" },
   { F|O, "Smoothing" , opt_post_smooth , 0. ,
     "Apply (non-reversible) smoothing to post-processing view when merged" },
 
diff --git a/Common/Options.cpp b/Common/Options.cpp
index ad0e613df34e6960c02cabb27d6c7af608f69af5..22ffa0bbc2101ad51ea59b0c868edc0bb8f06b4f 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -6862,6 +6862,20 @@ double opt_post_force_element_data(OPT_ARGS_NUM)
   return CTX::instance()->post.forceElementData;
 }
 
+double opt_post_save_mesh(OPT_ARGS_NUM)
+{
+  if(action & GMSH_SET)
+    CTX::instance()->post.saveMesh = (int)val;
+  return CTX::instance()->post.saveMesh;
+}
+
+double opt_post_save_interpolation_matrices(OPT_ARGS_NUM)
+{
+  if(action & GMSH_SET)
+    CTX::instance()->post.saveInterpolationMatrices = (int)val;
+  return CTX::instance()->post.saveInterpolationMatrices;
+}
+
 double opt_post_double_clicked_graph_point_x(OPT_ARGS_NUM)
 {
   if(action & GMSH_SET)
diff --git a/Common/Options.h b/Common/Options.h
index 12b9a3e5e2c366be1bf9cad79154e25d3234dbed..c2260bef4cef479aa3a48f094806165928b405c3 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -582,6 +582,8 @@ double opt_post_nb_views(OPT_ARGS_NUM);
 double opt_post_file_format(OPT_ARGS_NUM);
 double opt_post_force_node_data(OPT_ARGS_NUM);
 double opt_post_force_element_data(OPT_ARGS_NUM);
+double opt_post_save_mesh(OPT_ARGS_NUM);
+double opt_post_save_interpolation_matrices(OPT_ARGS_NUM);
 double opt_post_double_clicked_graph_point_x(OPT_ARGS_NUM);
 double opt_post_double_clicked_graph_point_y(OPT_ARGS_NUM);
 double opt_post_double_clicked_view(OPT_ARGS_NUM);
diff --git a/Post/PViewIO.cpp b/Post/PViewIO.cpp
index d0742019bf14a2078e163e680d73ffa9b9f56daf..dd87e7d32c5fff9558bb4a3f7b66f99203d873c6 100644
--- a/Post/PViewIO.cpp
+++ b/Post/PViewIO.cpp
@@ -302,8 +302,10 @@ bool PView::write(const std::string &fileName, int format, bool append)
   case 3: ret = _data->writeSTL(fileName); break;
   case 4: ret = _data->writeTXT(fileName); break;
   case 5: ret = _data->writeMSH(fileName, CTX::instance()->mesh.mshFileVersion,
-                                CTX::instance()->mesh.binary, true, false,
-                                0, true, CTX::instance()->post.forceNodeData,
+                                CTX::instance()->mesh.binary,
+                                CTX::instance()->post.saveMesh, false, 0,
+                                CTX::instance()->post.saveInterpolationMatrices,
+                                CTX::instance()->post.forceNodeData,
                                 CTX::instance()->post.forceElementData); break;
   case 6: ret = _data->writeMED(fileName); break;
   case 7: ret = writeX3D(fileName); break;
@@ -316,8 +318,10 @@ bool PView::write(const std::string &fileName, int format, bool append)
         ret = _data->writeSTL(fileName);
       else if(ext == ".msh")
         ret = _data->writeMSH(fileName, CTX::instance()->mesh.mshFileVersion,
-                              CTX::instance()->mesh.binary, true, false,
-                              0, true, CTX::instance()->post.forceNodeData,
+                              CTX::instance()->mesh.binary,
+                              CTX::instance()->post.saveMesh, false, 0,
+                              CTX::instance()->post.saveInterpolationMatrices,
+                              CTX::instance()->post.forceNodeData,
                               CTX::instance()->post.forceElementData);
       else if(ext == ".med")
         ret = _data->writeMED(fileName);
diff --git a/doc/texinfo/opt_geometry.texi b/doc/texinfo/opt_geometry.texi
index a918f85f328ab47ad3937f4386a24c2c5bbe25ee..921b20a219e21aefeee567f2bef0ef11490eec5b 100644
--- a/doc/texinfo/opt_geometry.texi
+++ b/doc/texinfo/opt_geometry.texi
@@ -59,11 +59,6 @@ Number of control points for splines created during extrusion@*
 Default value: @code{5}@*
 Saved in: @code{General.OptionsFileName}
 
-@item Geometry.HideCompounds
-Hide entities that make up compound entities?@*
-Default value: @code{1}@*
-Saved in: @code{General.OptionsFileName}
-
 @item Geometry.HighlightOrphans
 Highlight orphan entities (lines connected to a single surface, etc.)?@*
 Default value: @code{0}@*
diff --git a/doc/texinfo/opt_post.texi b/doc/texinfo/opt_post.texi
index 58f754bbe9d4b5e6f6a2ca90d8977dc5a9a90927..6922e34c9fcc6e0ca5109a1699cd1873651e01d6 100644
--- a/doc/texinfo/opt_post.texi
+++ b/doc/texinfo/opt_post.texi
@@ -94,6 +94,16 @@ Enable default post-processing plugins?@*
 Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
+@item PostProcessing.SaveInterpolationMatrices
+Save the interpolation matrices when exporting model-based data@*
+Default value: @code{1}@*
+Saved in: @code{General.OptionsFileName}
+
+@item PostProcessing.SaveMesh
+Save the mesh when exporting model-based data@*
+Default value: @code{1}@*
+Saved in: @code{General.OptionsFileName}
+
 @item PostProcessing.Smoothing
 Apply (non-reversible) smoothing to post-processing view when merged@*
 Default value: @code{0}@*