diff --git a/Solver/function.h b/Solver/function.h
index baf1312735817748c33cf0cca06b54232721860f..1fc7281d3d893fd234e4800dee80daf2e2e0e786 100644
--- a/Solver/function.h
+++ b/Solver/function.h
@@ -68,7 +68,7 @@ class function {
 
   // get or print information
   inline bool isInvalitedOnElement() { return _invalidatedOnElement; }
-  inline int getNbCol() const        { return _nbCol; }
+  inline int getNbCol() const        {if(_nbCol ==0) Msg::Error("Cannot ask nbCol of functionSolution"); return _nbCol; }
   static functionConstant *getTime();
   static functionConstant *getDT();
   static function *getSolution();
diff --git a/gmshpy/gmshSolver.i b/gmshpy/gmshSolver.i
index 8777c91886d6ed509fc7019088fe923c92c969cb..1d350c8b669e6cc209883ef4fe673200a248be8b 100644
--- a/gmshpy/gmshSolver.i
+++ b/gmshpy/gmshSolver.i
@@ -11,6 +11,7 @@
   #include "dofManager.h"
   #include "elasticitySolver.h"
   #include "function.h"
+  #include "functionDerivator.h"
   #include "functionPython.h"
   #include "linearSystem.h"
   #include "linearSystemCSR.h"
@@ -28,6 +29,7 @@ namespace std {
 %template(dofManagerDouble) dofManager<double>;
 %include "elasticitySolver.h"
 %include "function.h"
+%include "functionDerivator.h"
 %include "functionPython.h"
 %include "linearSystem.h"
 %template(linearSystemDouble) linearSystem<double>;