diff --git a/wrappers/gmshpy/gmshCommon.i b/wrappers/gmshpy/gmshCommon.i
index 1efbdca9bd56c5f801cdbfeb8f5adec2b76a6005..668a47720834e1f7b2037ac84160819fb0d3d968 100644
--- a/wrappers/gmshpy/gmshCommon.i
+++ b/wrappers/gmshpy/gmshCommon.i
@@ -1,4 +1,5 @@
 %feature("autodoc", "1");
+#pragma SWIG nowarn=312
 %module gmshCommon
 
 %include std_string.i
@@ -8,6 +9,7 @@
 %import "gmshtypemaps.i"
 
 %{
+  #undef HAVE_DLOPEN
   #include "GmshConfig.h"
 
   #include "Context.h"
diff --git a/wrappers/gmshpy/gmshGeo.i b/wrappers/gmshpy/gmshGeo.i
index e63d70d250472406289ca8f6af62d7c1e275578e..9cb1d60ccb16f92e18bd781f451ae4ff8c81d82a 100644
--- a/wrappers/gmshpy/gmshGeo.i
+++ b/wrappers/gmshpy/gmshGeo.i
@@ -1,4 +1,5 @@
 %feature("autodoc", "1");
+#pragma SWIG nowarn=312
 %module gmshGeo
 
 %include std_string.i
@@ -7,6 +8,7 @@
 %import "gmshtypemaps.i"
 
 %{
+  #undef HAVE_DLOPEN
   #include "GmshConfig.h"
 
   #include "GModel.h"
@@ -17,7 +19,6 @@
   #include "GFace.h"
   #include "GFaceCompound.h"
   #include "GRegion.h"
-  #include "GPoint.h"
   #include "discreteFace.h"
   #include "discreteEdge.h"
   #include "discreteRegion.h"
@@ -64,6 +65,23 @@ namespace std {
   %template(SPoint3Vector) std::vector<SPoint3, std::allocator<SPoint3> >;
 }
 
+%rename(__add__) *::operator+;
+%rename(__sub__) *::operator-;
+%rename(__neg__) *::operator-();
+%rename(_operator_mult) *::operator*;
+%rename(_operator_assign) *::operator=;
+%rename(_operator_equal) *::operator==;
+%ignore operator+;
+%ignore operator-;
+%ignore operator*;
+%ignore operator==;
+%ignore operator!=;
+%ignore operator double*;
+%ignore *::operator[](int);
+%rename(at) *::operator[];
+%rename(_print) *::print;
+
+
 %include "GmshConfig.h"
 %include "simpleFunction.h"
 %template(simpleFunctionDouble) simpleFunction<double>;
@@ -73,31 +91,42 @@ namespace std {
 }
 
 %include "GModel.h"
+%ignore GPoint::x();
+%ignore GPoint::y();
+%ignore GPoint::z();
 %include "GPoint.h"  
 %include "GEntity.h"
 %include "GVertex.h"
 %apply std::vector<double> &OUTPUT{std::vector<double> &ts}
 %apply std::vector<SPoint3> &OUTPUT{std::vector<SPoint3> &dpts}
 %include "GEdge.h"
+%ignore GFace::computeMeanPlane(std::vector< MVertex *>const&);
 %include "GFace.h"
 %include "GFaceCompound.h"
 %include "GRegion.h"
-%include "GPoint.h"
 %include "discreteFace.h"
 %include "discreteEdge.h"
 %include "discreteVertex.h"
 %include "discreteRegion.h"
 %include "SPoint3.h"
 %include "MElement.h"
+%ignore MVertex::x();
+%ignore MVertex::y();
+%ignore MVertex::z();
 %include "MVertex.h"
 %include "MTriangle.h"
 %include "MPrism.h"
 %include "MHexahedron.h"
 %include "MQuadrangle.h"
 %include "MLine.h"
+%warnfilter(401) Equal_Edge;
+%warnfilter(401) Less_Edge;
 %include "MEdge.h"
+%warnfilter(401) Equal_Face;
+%warnfilter(401) Less_Face;
 %include "MFace.h"
 %include "MPoint.h"
+%ignore SVector3::operator()(int);
 %include "SVector3.h"
 %include "SPoint2.h"
 %include "SBoundingBox3d.h"
diff --git a/wrappers/gmshpy/gmshMesh.i b/wrappers/gmshpy/gmshMesh.i
index 92ae6e7c0aa88b78e633ae513c27bb35d2f6f953..48f7601ca7aff0652973dd4be3fbaaee80ab14e6 100644
--- a/wrappers/gmshpy/gmshMesh.i
+++ b/wrappers/gmshpy/gmshMesh.i
@@ -5,6 +5,7 @@
 %import "gmshtypemaps.i"
 
 %{
+  #undef HAVE_DLOPEN
   #include "GmshConfig.h"
 #if defined(HAVE_MESH)
   #include "Generator.h"
@@ -49,6 +50,7 @@ namespace std {
 %include "GmshConfig.h"
 #if defined(HAVE_MESH)
 %include "Generator.h"
+#pragma SWIG nowarn=314
 %include "DivideAndConquer.h"
 #if defined(HAVE_BFGS)
 %include "meshGFaceLloyd.h"
@@ -65,6 +67,7 @@ namespace std {
 #if defined(HAVE_METIS) || defined(HAVE_CHACO)
 %include "meshPartition.h"
 #endif
+%warnfilter(401) FieldManager;
 %include "Field.h"
 %extend FieldManager {
   int addPythonField(PyObject *callback, int id = -1) {
diff --git a/wrappers/gmshpy/gmshNumeric.i b/wrappers/gmshpy/gmshNumeric.i
index fc663a3d45e3d41e5ab1c727f09781b2975ea2bd..3f3df01d41a0d83362a07cd4dba7186973e781eb 100644
--- a/wrappers/gmshpy/gmshNumeric.i
+++ b/wrappers/gmshpy/gmshNumeric.i
@@ -1,11 +1,13 @@
 %feature("autodoc", "1");
 %module gmshNumeric
+#pragma SWIG nowarn=325
 
 %include std_string.i
 %include std_vector.i
 %import "gmshtypemaps.i"
 
 %{
+  #undef HAVE_DLOPEN
   #include "GmshConfig.h"
 
   #include "GaussIntegration.h"
@@ -19,10 +21,12 @@
   #include "pyramidalBasis.h"
 %}
 
-%rename("_assign=") operator();
-%rename("_assign_operator=") operator=;
+%rename("_operator_assign") *::operator=;
+%rename("_print") *::print;
 %include "GaussIntegration.h"
 %include "JacobianBasis.h"
+%ignore fullMatrix<double>::operator()(int, int);
+%ignore fullVector<double>::operator()(int);
 %include "fullMatrix.h"
 %include "simpleFunction.h"
 %template(fullMatrixDouble) fullMatrix<double>;
diff --git a/wrappers/gmshpy/gmshPost.i b/wrappers/gmshpy/gmshPost.i
index 6b68a2caa2915b865c5fe2c6d6109a5afdd07c7a..f32630b9dfd575bcd33addf3edef336482e447fc 100644
--- a/wrappers/gmshpy/gmshPost.i
+++ b/wrappers/gmshpy/gmshPost.i
@@ -7,6 +7,7 @@
 %import "gmshtypemaps.i"
 
 %{
+  #undef HAVE_DLOPEN
   #include "GmshConfig.h"
   #include "fullMatrix.h"
 #if defined(HAVE_POST)
diff --git a/wrappers/gmshpy/gmshSolver.i b/wrappers/gmshpy/gmshSolver.i
index 2aec16dffa69c2df750daedb4b57bca0167ef3d4..630d1c191f400138f60a83e6f56902d61ed045da 100644
--- a/wrappers/gmshpy/gmshSolver.i
+++ b/wrappers/gmshpy/gmshSolver.i
@@ -6,6 +6,7 @@
 %import "gmshtypemaps.i"
 
 %{
+  #undef HAVE_DLOPEN
   #include "GmshConfig.h"
 #if defined(HAVE_SOLVER)
   #include "dofManager.h"
@@ -20,6 +21,8 @@
 #endif
 %}
 
+%rename ("_print") *::print;
+
 %include "GmshConfig.h"
 #if defined(HAVE_SOLVER)
 %include "dofManager.h"
diff --git a/wrappers/gmshpy/gmshtypemaps.i b/wrappers/gmshpy/gmshtypemaps.i
index 78bfb9f7ffe24b6738cf4e2ab1f4cea0d5012cc0..76acb7ccab9247089feced450b6dab8a896e6609 100644
--- a/wrappers/gmshpy/gmshtypemaps.i
+++ b/wrappers/gmshpy/gmshtypemaps.i
@@ -217,4 +217,3 @@
 }
 #endif
 
-