diff --git a/python/cplumed.pxd b/python/cplumed.pxd
index e0f58c121983ed2d84a1a29adf904953c1f12180..ab4be063531513f7b179664550566329b51f5915 100644
--- a/python/cplumed.pxd
+++ b/python/cplumed.pxd
@@ -27,3 +27,4 @@ cdef extern from "Plumed.h" :
          pass
      plumed plumed_create()
      void plumed_cmd(plumed p, const char*key, const void*val) except + 
+     void plumed_finalize(plumed p) except +
diff --git a/python/plumed.pyx b/python/plumed.pyx
index de2767157b241f3cddd5ac9adfd6a8786666b163..f35d16bddbb4a19301379b8946191c0b5fff64dd 100644
--- a/python/plumed.pyx
+++ b/python/plumed.pyx
@@ -35,8 +35,7 @@ cdef class Plumed:
          cdef int pres = 8
          cplumed.plumed_cmd(self.c_plumed, "setRealPrecision", <void*>&pres )  
      def __dealloc__(self): 
-         pass
-         #del self.c_plumed
+         cplumed.plumed_finalize(self.c_plumed)
 
      def cmd_ndarray_real(self, ckey, val):
          cdef double [:] abuffer = val.ravel()