diff --git a/Numeric/polynomialBasis.cpp b/Numeric/polynomialBasis.cpp
index 43fed498c7353ba87a73e17a213f6e726eaa8db2..aa9373c9f4d768eb3b01a4386e2927789e9e3064 100644
--- a/Numeric/polynomialBasis.cpp
+++ b/Numeric/polynomialBasis.cpp
@@ -571,9 +571,9 @@ static fullMatrix<double> gmshGeneratePointsTriangle(int order, bool serendip)
   point(0, 0) = 0;
   point(0, 1) = 0;
 
-  double dd = 1. / order;
-
   if (order > 0) {
+    double dd = 1. / order;
+
     point(1, 0) = 1;
     point(1, 1) = 0;
     point(2, 0) = 0;
diff --git a/Plugin/CMakeLists.txt b/Plugin/CMakeLists.txt
index dee3492d33561881700381a2e9eda4a855dfa3a0..1f1c4b4fa472f14a1db70b9dbf4c299cb08c7f5c 100644
--- a/Plugin/CMakeLists.txt
+++ b/Plugin/CMakeLists.txt
@@ -24,6 +24,7 @@ set(SRC
   HarmonicToTime.cpp ModulusPhase.cpp
   HomologyComputation.cpp
   Distance.cpp ExtractEdges.cpp
+  AnalyseCurvedMesh.cpp
 )
 
 file(GLOB HDR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h) 
diff --git a/Plugin/PluginManager.cpp b/Plugin/PluginManager.cpp
index 37d53e32a6cc12907403fda4babb0a11c4d0599a..b21b41d993752ed3360bccc8429a017986310715 100644
--- a/Plugin/PluginManager.cpp
+++ b/Plugin/PluginManager.cpp
@@ -18,6 +18,7 @@
 #include "CutParametric.h"
 #include "CutSphere.h"
 #include "Skin.h"
+#include "AnalyseCurvedMesh.h"
 #include "MathEval.h"
 #include "ExtractElements.h"
 #include "HarmonicToTime.h"
@@ -163,6 +164,8 @@ void PluginManager::registerDefaultPlugins()
                       ("Skin", GMSH_RegisterSkinPlugin()));
     allPlugins.insert(std::pair<std::string, GMSH_Plugin*>
                       ("MathEval", GMSH_RegisterMathEvalPlugin()));
+	allPlugins.insert(std::pair<std::string, GMSH_Plugin*>
+                      ("AnalyseCurvedMesh", GMSH_RegisterAnalyseCurvedMeshPlugin()));
     allPlugins.insert(std::pair<std::string, GMSH_Plugin*>
                       ("ModifyComponent", GMSH_RegisterModifyComponentPlugin()));
     allPlugins.insert(std::pair<std::string, GMSH_Plugin*>