diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index a19b8d94fc02c97afe3557d18319ebe5d32c32cc..57172b927bb55b376ef20e4773da5a582cf9ad57 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1445,6 +1445,8 @@ StringXNumber ViewOptions_Number[] = {
     "Maximum recursion level for adaptive views" },
   { F,   "Max" , opt_view_max , 0. ,
     "Maximum value in the view (read-only)" },
+  { F,   "MaxVisible" , opt_view_max_visible , 0. ,
+    "Maximum value in the visible parts of the view (read-only)" },
   { F,   "MaxX" , opt_view_xmax , 0. ,
     "Maximum view coordinate along the X-axis (read-only)" },
   { F,   "MaxY" , opt_view_ymax , 0. ,
@@ -1453,6 +1455,8 @@ StringXNumber ViewOptions_Number[] = {
     "Maximum view coordinate along the Z-axis (read-only)" },
   { F,   "Min" , opt_view_min , 0. ,
     "Minimum value in the view (read-only)" },
+  { F,   "MinVisible" , opt_view_min_visible , 0. ,
+    "Minimum value in the visible parts of the view (read-only)" },
   { F,   "MinX" , opt_view_xmin , 0. ,
     "Minimum view coordinate along the X-axis (read-only)" },
   { F,   "MinY" , opt_view_ymin , 0. ,
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 51c3359ac6b4ad449c494a94131aa58c4fa43a67..86e1ef60a8e5eaa67ad34d0af34261231bdba5f7 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -6513,6 +6513,30 @@ double opt_view_max(OPT_ARGS_NUM)
 #endif
 }
 
+double opt_view_min_visible(OPT_ARGS_NUM)
+{
+#if defined(HAVE_POST)
+  GET_VIEW(0.);
+  if(!data) return 0.;
+  return data->getMin(opt->timeStep, true, opt->forceNumComponents,
+                      opt->componentMap);
+#else
+  return 0.;
+#endif
+}
+
+double opt_view_max_visible(OPT_ARGS_NUM)
+{
+#if defined(HAVE_POST)
+  GET_VIEW(0.);
+  if(!data) return 0.;
+  return data->getMax(opt->timeStep, true, opt->forceNumComponents,
+                      opt->componentMap);
+#else
+  return 0.;
+#endif
+}
+
 double opt_view_custom_min(OPT_ARGS_NUM)
 {
 #if defined(HAVE_POST)
diff --git a/Common/Options.h b/Common/Options.h
index 7cb7468d345d57e2456a347444e95a32f1053dbd..b2a800df076948677578df8bc882b93641acffa6 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -538,6 +538,8 @@ double opt_view_timestep(OPT_ARGS_NUM);
 double opt_view_time(OPT_ARGS_NUM);
 double opt_view_min(OPT_ARGS_NUM);
 double opt_view_max(OPT_ARGS_NUM);
+double opt_view_min_visible(OPT_ARGS_NUM);
+double opt_view_max_visible(OPT_ARGS_NUM);
 double opt_view_custom_min(OPT_ARGS_NUM);
 double opt_view_custom_max(OPT_ARGS_NUM);
 double opt_view_custom_abscissa_min(OPT_ARGS_NUM);
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 6c3999989ccd48cf172497b41999c3f41e19d6a4..1caf16832c63064ac8c95dd4b68f1f8c2ad54edb 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -116,9 +116,11 @@ void GetStatistics(double stat[50], double quality[4][100])
     stat[4] += (*it)->mesh_vertices.size();
 
   for(GModel::fiter it = m->firstFace(); it != m->lastFace(); ++it){
+    // TODO: make this an option! if((*it)->getVisibility()){
     stat[5] += (*it)->mesh_vertices.size();
     stat[7] += (*it)->triangles.size();
     stat[8] += (*it)->quadrangles.size();
+    //}
   }
 
   for(GModel::riter it = m->firstRegion(); it != m->lastRegion(); ++it){
diff --git a/doc/texinfo/commandline.texi b/doc/texinfo/commandline.texi
index bc9b0148e90076b492b3c6a410858cb1a05ddee8..77e6d254d8d94cba9a7c6d0c6fe70d517531277a 100644
--- a/doc/texinfo/commandline.texi
+++ b/doc/texinfo/commandline.texi
@@ -81,6 +81,15 @@ Ignore partitions boundaries
 Select link mode between views (0, 1, 2, 3, 4)
 @item -combine
 Combine views having identical names into multi-time-step views
+@end ftable
+ Solver options:
+@ftable @code
+@item -listen
+Always listen to incoming connection requests
+@item -minterpreter string
+Name of Octave interpreter
+@item -pyinterpreter string
+Name of Python interpreter
 @end ftable
  Display options:
 @ftable @code
@@ -117,8 +126,6 @@ Open next files
 Start in automatic, geometry, mesh, solver or post-processing mode
 @item -pid
 Print process id on stdout
-@item -listen
-Always listen to incoming connection requests
 @item -watch pattern
 Pattern of files to merge as they become available
 @item -bg file
diff --git a/doc/texinfo/opt_plugin.texi b/doc/texinfo/opt_plugin.texi
index bba5e2528ea8fcb2b00797475f0e350431f65d9b..1c2f999605c8064f56c82315e80453a413f3b36b 100644
--- a/doc/texinfo/opt_plugin.texi
+++ b/doc/texinfo/opt_plugin.texi
@@ -5,27 +5,29 @@
 
 @ftable @code
 @item Plugin(AnalyseCurvedMesh)
-Plugin(AnalyseCurvedMesh) analyse all elements of a given dimension. It computes, min(J) where J is the scaled Jacobian determinant. Eventually, it computes min(R) where R is the ratio between the smaller and the greater of the eigenvalues of the metric. It creates one or more PView and hides elements for which min(@{J, R@}) < 'Hidding threshold'.@*
+Plugin(AnalyseCurvedMesh) analyse all elements of a given dimension. It computes, min(J) where J is the scaled Jacobian determinant and, if asked, min(R) where R is the ratio between the smaller and the greater of the eigenvalues of the metric. It creates a PView and hides elements for which min(@{J, R@}) < 'Hidding threshold'.@*
+@*
+J is faster to compute but gives informations only on validity while R gives also informations on quality.@*
 @*
 Parameters:@*
 @*
-- Show [...] = @{0, 1@}: If 0, computes Jacobian and shows min(J). If 1, computes Jacobian and metric and shows min(R).@*
+- Show [...] = @{0, 1, 2@}: If 0, computes Jacobian and shows min(J). If 1, computes Jacobian and metric and shows min(R). If 2, behaves like it is 1 but draw the two min(J) and min(R) PView@*
 @*
-- Number of PView = @{0, 1, 2@}: If 1, create one PView with all elements. If 2, create two PView, one with straight-sided elements and one with curved elements.@*
+- Draw PView = @{0, 1@}: Creates a PView of min(@{J, R@}) if it does not exist already. If 'Recompute' = 1, a new PView is redrawed.@*
 @*
 - Hidding threshold = [0,1]: Hides all element for which min(R) or min(J) is strictly greater than the threshold. If = 1, no effect, if = 0 hide all elements except invalid.@*
 @*
-- Dimension = @{-1, 1, 2, 3@}: If = -1, analyse element of the greater dimension.@*
+- Dimension = @{-1, 1, 2, 3, 4@}: If = -1, analyse element of the greater dimension. If = 4, analyse 2D and 3D elements@*
 @*
 - Recompute = @{0,1@}: If the mesh has changed, set to 1 to recompute the bounds.@*
 @*
-- Tolerance = ]0, 1[: Tolerance on the computation of min(R) or min(J). It should be at most 0.01 but it can be set to 1 to just check the validity of the mesh.
+- Tolerance = ]0, 1[: Tolerance on the computation of min(@{R, J@}). It should be at most 0.01 but it can be set to 1 or greater to just check the validity of the mesh.
 Numeric options:
 @table @code
-@item Show: (0) Jacobian, (1) Metric
+@item Show: 0:J, 1:R, 2:J&&R
+Default value: @code{1}
+@item Draw PView
 Default value: @code{1}
-@item Number of PView
-Default value: @code{2}
 @item Hidding threshold
 Default value: @code{0.1}
 @item Dimension of elements
@@ -350,6 +352,14 @@ Numeric options:
 Default value: @code{-1}
 @end table
 
+@item Plugin(DuplicateBoundaries)
+Plugin(DuplicateBoundaries) is not documented yet.
+Numeric options:
+@table @code
+@item Dummy
+Default value: @code{1}
+@end table
+
 @item Plugin(Eigenvalues)
 Plugin(Eigenvalues) computes the three real eigenvalues of each tensor in the view `View'.@*
 @*
diff --git a/doc/texinfo/opt_post.texi b/doc/texinfo/opt_post.texi
index 7a1b03413771a9af48e43d47c6a56c60511a67b2..7c9649dd362e5e252584b9d5e3cdce37701cdf72 100644
--- a/doc/texinfo/opt_post.texi
+++ b/doc/texinfo/opt_post.texi
@@ -4,6 +4,11 @@
 @c
 
 @ftable @code
+@item PostProcessing.GraphPointCommand
+Command parsed when double-clicking on a graph data point (e.g. Merge Sprintf('file_%g.pos', PostProcessing.GraphPointX);)@*
+Default value: @code{""}@*
+Saved in: @code{General.OptionsFileName}
+
 @item PostProcessing.AnimationDelay
 Delay (in seconds) between frames in automatic animation mode@*
 Default value: @code{0.1}@*
@@ -34,6 +39,16 @@ Default file format for post-processing views (0=ASCII view, 1=binary view, 2=pa
 Default value: @code{10}@*
 Saved in: @code{General.OptionsFileName}
 
+@item PostProcessing.GraphPointX
+Abscissa of last selected graph point@*
+Default value: @code{0}@*
+Saved in: @code{General.OptionsFileName}
+
+@item PostProcessing.GraphPointY
+Ordinate of last selected graph point@*
+Default value: @code{0}@*
+Saved in: @code{General.OptionsFileName}
+
 @item PostProcessing.HorizontalScales
 Display value scales horizontally@*
 Default value: @code{1}@*
diff --git a/doc/texinfo/opt_solver.texi b/doc/texinfo/opt_solver.texi
index c655dd4eea89445215baafcaa78fc36f27b47cb6..e41e32cab90a6fceea07e9c85c64d00d9b674a66 100644
--- a/doc/texinfo/opt_solver.texi
+++ b/doc/texinfo/opt_solver.texi
@@ -104,6 +104,16 @@ Name of solver 9@*
 Default value: @code{""}@*
 Saved in: @code{General.SessionFileName}
 
+@item Solver.OctaveInterpreter
+Name of the Octave interpreter (used to run .m files)@*
+Default value: @code{"octave"}@*
+Saved in: @code{General.SessionFileName}
+
+@item Solver.PythonInterpreter
+Name of the Python interpreter (used to run .py files if they are not executable)@*
+Default value: @code{"python"}@*
+Saved in: @code{General.SessionFileName}
+
 @item Solver.RemoteLogin0
 Command to login to a remote host to launch solver 0@*
 Default value: @code{""}@*
diff --git a/doc/texinfo/opt_view.texi b/doc/texinfo/opt_view.texi
index f4d30b6676008e6693d5384644df6278d8d7b669..b21a28f2015c747162e2fb5aa983169db986a3b3 100644
--- a/doc/texinfo/opt_view.texi
+++ b/doc/texinfo/opt_view.texi
@@ -145,7 +145,7 @@ Default value: @code{0}@*
 Saved in: @code{General.OptionsFileName}
 
 @item View.AutoPosition
-Position the scale or 2D plot automatically (0: manual, 1: automatic, 2: top left, 3: top right, 4: bottom left, 5: bottom right, 6: top, 7: bottom, 8: left, 9: right, 10: full, 11: top third)@*
+Position the scale or 2D plot automatically (0: manual, 1: automatic, 2: top left, 3: top right, 4: bottom left, 5: bottom right, 6: top, 7: bottom, 8: left, 9: right, 10: full, 11: top third, 12: in model coordinates)@*
 Default value: @code{1}@*
 Saved in: @code{General.OptionsFileName}
 
@@ -484,6 +484,11 @@ Maximum value in the view (read-only)@*
 Default value: @code{0}@*
 Saved in: @code{-}
 
+@item View.MaxVisble
+Maximum value in the visible parts of the view (read-only)@*
+Default value: @code{0}@*
+Saved in: @code{-}
+
 @item View.MaxX
 Maximum view coordinate along the X-axis (read-only)@*
 Default value: @code{0}@*
@@ -504,6 +509,11 @@ Minimum value in the view (read-only)@*
 Default value: @code{0}@*
 Saved in: @code{-}
 
+@item View.MinVisble
+Minimum value in the visible parts of the view (read-only)@*
+Default value: @code{0}@*
+Saved in: @code{-}
+
 @item View.MinX
 Minimum view coordinate along the X-axis (read-only)@*
 Default value: @code{0}@*
@@ -654,6 +664,11 @@ Current time step displayed@*
 Default value: @code{0}@*
 Saved in: @code{-}
 
+@item View.Time
+Current time displayed (if positive, sets the time step corresponding the given time value)@*
+Default value: @code{0}@*
+Saved in: @code{-}
+
 @item View.TransformXX
 Element (1,1) of the 3x3 coordinate transformation matrix@*
 Default value: @code{1}@*
@@ -700,7 +715,7 @@ Default value: @code{1}@*
 Saved in: @code{-}
 
 @item View.Type
-Type of plot (1=3D, 2=2D space, 3=2D time)@*
+Type of plot (1=3D, 2=2D space, 3=2D time, 4=2D)@*
 Default value: @code{1}@*
 Saved in: @code{-}