diff --git a/bob/learn/em/empca_trainer.cpp b/bob/learn/em/empca_trainer.cpp
index 5af5adcf9b1689072794973cab4d2479a71fecbf..0b42bca15c3e778950efe1f759a45f89d31d90a8 100644
--- a/bob/learn/em/empca_trainer.cpp
+++ b/bob/learn/em/empca_trainer.cpp
@@ -98,7 +98,7 @@ static int PyBobLearnEMEMPCATrainer_init(PyBobLearnEMEMPCATrainerObject* self, P
       return -1;
     }
   }
-  BOB_CATCH_MEMBER("cannot create EMPCATrainer", 0)
+  BOB_CATCH_MEMBER("cannot create EMPCATrainer", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/gmm_machine.cpp b/bob/learn/em/gmm_machine.cpp
index 86c965c25779685f232e40835cc3da789024ca7f..3d960b9e62e444e690cf4a439a92cc6a4ed11cf3 100644
--- a/bob/learn/em/gmm_machine.cpp
+++ b/bob/learn/em/gmm_machine.cpp
@@ -130,7 +130,7 @@ static int PyBobLearnEMGMMMachine_init(PyBobLearnEMGMMMachineObject* self, PyObj
       GMMMachine_doc.print_usage();
       return -1;
   }
-  BOB_CATCH_MEMBER("cannot create GMMMachine", 0)
+  BOB_CATCH_MEMBER("cannot create GMMMachine", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/gmm_stats.cpp b/bob/learn/em/gmm_stats.cpp
index 674de4ffca79d78d64bea9a8bd4b9381110dc6a9..d0f9ebdea71685e0bddfed8ac0c5554a800624cb 100644
--- a/bob/learn/em/gmm_stats.cpp
+++ b/bob/learn/em/gmm_stats.cpp
@@ -134,7 +134,7 @@ static int PyBobLearnEMGMMStats_init(PyBobLearnEMGMMStatsObject* self, PyObject*
       GMMStats_doc.print_usage();
       return -1;
   }
-  BOB_CATCH_MEMBER("cannot create GMMStats", 0)
+  BOB_CATCH_MEMBER("cannot create GMMStats", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/isv_base.cpp b/bob/learn/em/isv_base.cpp
index e1b8c0bfadfb9e58aa02c6eed5f1eec21e01571f..0a615035e2f26982efc0f7ec28b84b02f196c899 100644
--- a/bob/learn/em/isv_base.cpp
+++ b/bob/learn/em/isv_base.cpp
@@ -126,7 +126,7 @@ static int PyBobLearnEMISVBase_init(PyBobLearnEMISVBaseObject* self, PyObject* a
       ISVBase_doc.print_usage();
       return -1;
   }
-  BOB_CATCH_MEMBER("cannot create ISVBase", 0)
+  BOB_CATCH_MEMBER("cannot create ISVBase", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/isv_machine.cpp b/bob/learn/em/isv_machine.cpp
index e4f4f62ce296bb18702ee64bfa2f924ccb55b4b5..9d5748b4c6991503dfa95a95dcf2f77f282b5d6b 100644
--- a/bob/learn/em/isv_machine.cpp
+++ b/bob/learn/em/isv_machine.cpp
@@ -116,7 +116,7 @@ static int PyBobLearnEMISVMachine_init(PyBobLearnEMISVMachineObject* self, PyObj
     return -1;
   }
   
-  BOB_CATCH_MEMBER("cannot create ISVMachine", 0)
+  BOB_CATCH_MEMBER("cannot create ISVMachine", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/isv_trainer.cpp b/bob/learn/em/isv_trainer.cpp
index 9fdc0052f849512f7fa215d9fa6c86182ffe21db..11a241a61403fc762f1283ae6332a61bcc0f4474 100644
--- a/bob/learn/em/isv_trainer.cpp
+++ b/bob/learn/em/isv_trainer.cpp
@@ -173,7 +173,7 @@ static int PyBobLearnEMISVTrainer_init(PyBobLearnEMISVTrainerObject* self, PyObj
       return -1;
     }
   }
-  BOB_CATCH_MEMBER("cannot create ISVTrainer", 0)
+  BOB_CATCH_MEMBER("cannot create ISVTrainer", -1)
   return 0;
 }
 
@@ -329,7 +329,7 @@ int PyBobLearnEMISVTrainer_set_X(PyBobLearnEMISVTrainerObject* self, PyObject* v
   }
 
   return 0;
-  BOB_CATCH_MEMBER("__X__ could not be written", 0)
+  BOB_CATCH_MEMBER("__X__ could not be written", -1)
 }
 
 
@@ -359,7 +359,7 @@ int PyBobLearnEMISVTrainer_set_Z(PyBobLearnEMISVTrainerObject* self, PyObject* v
   }
 
   return 0;
-  BOB_CATCH_MEMBER("__Z__ could not be written", 0)
+  BOB_CATCH_MEMBER("__Z__ could not be written", -1)
 }
 
 
diff --git a/bob/learn/em/ivector_machine.cpp b/bob/learn/em/ivector_machine.cpp
index 1af477f2c1687a3e95b5862dc785cb27c410b04a..c29076c51f3242b38b3157def92bae229e546b52 100644
--- a/bob/learn/em/ivector_machine.cpp
+++ b/bob/learn/em/ivector_machine.cpp
@@ -131,7 +131,7 @@ static int PyBobLearnEMIVectorMachine_init(PyBobLearnEMIVectorMachineObject* sel
     return -1;
   }
 
-  BOB_CATCH_MEMBER("cannot create IVectorMachine", 0)
+  BOB_CATCH_MEMBER("cannot create IVectorMachine", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/ivector_trainer.cpp b/bob/learn/em/ivector_trainer.cpp
index 7524afb524d4f582a67f55c19389006ca2459506..876fe30672f52b1a0666483ff5e7577a59c5748e 100644
--- a/bob/learn/em/ivector_trainer.cpp
+++ b/bob/learn/em/ivector_trainer.cpp
@@ -117,7 +117,7 @@ static int PyBobLearnEMIVectorTrainer_init(PyBobLearnEMIVectorTrainerObject* sel
       return -1;
     }
   }
-  BOB_CATCH_MEMBER("cannot create IVectorTrainer", 0)
+  BOB_CATCH_MEMBER("cannot create IVectorTrainer", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/jfa_base.cpp b/bob/learn/em/jfa_base.cpp
index a93da2ada0394d9f51ba49c18ca7dabb739e2274..e15c103c9ee9fd9355296505b23cfef47b65e4f4 100644
--- a/bob/learn/em/jfa_base.cpp
+++ b/bob/learn/em/jfa_base.cpp
@@ -132,7 +132,7 @@ static int PyBobLearnEMJFABase_init(PyBobLearnEMJFABaseObject* self, PyObject* a
       JFABase_doc.print_usage();
       return -1;
   }
-  BOB_CATCH_MEMBER("cannot create JFABase", 0)
+  BOB_CATCH_MEMBER("cannot create JFABase", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/jfa_machine.cpp b/bob/learn/em/jfa_machine.cpp
index ca7ce963ada9f16ee5f177679860a69ed26ab15c..a90dd02b1c65778568436d7a6c8968501b9dcee7 100644
--- a/bob/learn/em/jfa_machine.cpp
+++ b/bob/learn/em/jfa_machine.cpp
@@ -116,7 +116,7 @@ static int PyBobLearnEMJFAMachine_init(PyBobLearnEMJFAMachineObject* self, PyObj
     return -1;
   }
 
-  BOB_CATCH_MEMBER("cannot create JFAMachine", 0)
+  BOB_CATCH_MEMBER("cannot create JFAMachine", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/jfa_trainer.cpp b/bob/learn/em/jfa_trainer.cpp
index 6ee7792d844404b608ed5e690b40401e07ef9c7a..0fccf38c0a8dbb5f9b4f8f26cf92072b8d1fd0ec 100644
--- a/bob/learn/em/jfa_trainer.cpp
+++ b/bob/learn/em/jfa_trainer.cpp
@@ -138,7 +138,7 @@ static int PyBobLearnEMJFATrainer_init(PyBobLearnEMJFATrainerObject* self, PyObj
       return -1;
     }
   }
-  BOB_CATCH_MEMBER("cannot create JFATrainer", 0)
+  BOB_CATCH_MEMBER("cannot create JFATrainer", -1)
   return 0;
 }
 
@@ -471,7 +471,7 @@ int PyBobLearnEMJFATrainer_set_X(PyBobLearnEMJFATrainerObject* self, PyObject* v
   }
 
   return 0;
-  BOB_CATCH_MEMBER("__X__ could not be written", 0)
+  BOB_CATCH_MEMBER("__X__ could not be written", -1)
 }
 
 
@@ -502,7 +502,7 @@ int PyBobLearnEMJFATrainer_set_Y(PyBobLearnEMJFATrainerObject* self, PyObject* v
   }
 
   return 0;
-  BOB_CATCH_MEMBER("__Y__ could not be written", 0)
+  BOB_CATCH_MEMBER("__Y__ could not be written", -1)
 }
 
 
@@ -533,7 +533,7 @@ int PyBobLearnEMJFATrainer_set_Z(PyBobLearnEMJFATrainerObject* self, PyObject* v
   }
 
   return 0;
-  BOB_CATCH_MEMBER("__Z__ could not be written", 0)
+  BOB_CATCH_MEMBER("__Z__ could not be written", -1)
 }
 
 
diff --git a/bob/learn/em/kmeans_machine.cpp b/bob/learn/em/kmeans_machine.cpp
index 958e439728f3f8ea3d7c106aa43ccd4437800529..1abad646ceb9e2ef7a1ffcd2bbb44f7b022c1718 100644
--- a/bob/learn/em/kmeans_machine.cpp
+++ b/bob/learn/em/kmeans_machine.cpp
@@ -130,7 +130,7 @@ static int PyBobLearnEMKMeansMachine_init(PyBobLearnEMKMeansMachineObject* self,
       KMeansMachine_doc.print_usage();
       return -1;
   }
-  BOB_CATCH_MEMBER("cannot create KMeansMachine", 0)
+  BOB_CATCH_MEMBER("cannot create KMeansMachine", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/kmeans_trainer.cpp b/bob/learn/em/kmeans_trainer.cpp
index 90ebb5c26558f87258be6f3190d11b9d4d6378b3..82be851f0fab628ad28725a022ebea647dc89fa6 100644
--- a/bob/learn/em/kmeans_trainer.cpp
+++ b/bob/learn/em/kmeans_trainer.cpp
@@ -108,7 +108,6 @@ static int PyBobLearnEMKMeansTrainer_init(PyBobLearnEMKMeansTrainerObject* self,
         return PyBobLearnEMKMeansTrainer_init_copy(self, args, kwargs);
       else if(PyString_Check(arg))
         return PyBobLearnEMKMeansTrainer_init_str(self, args, kwargs);
-        //return PyBobLearnEMKMeansTrainer_init_str(self, arg);
     }
     default:{
       PyErr_Format(PyExc_RuntimeError, "number of arguments mismatch - %s requires 0 or 1 arguments, but you provided %d (see help)", Py_TYPE(self)->tp_name, nargs);
@@ -116,7 +115,7 @@ static int PyBobLearnEMKMeansTrainer_init(PyBobLearnEMKMeansTrainerObject* self,
       return -1;
     }
   }
-  BOB_CATCH_MEMBER("cannot create KMeansTrainer", 0)
+  BOB_CATCH_MEMBER("cannot create KMeansTrainer", -1)
   return 0;
 }
 
@@ -182,7 +181,7 @@ int PyBobLearnEMKMeansTrainer_setInitializationMethod(PyBobLearnEMKMeansTrainerO
   self->cxx->setInitializationMethod(string2IM(PyString_AS_STRING(value)));
 
   return 0;
-  BOB_CATCH_MEMBER("initialization method could not be set", 0)
+  BOB_CATCH_MEMBER("initialization method could not be set", -1)
 }
 
 
@@ -264,7 +263,7 @@ int PyBobLearnEMKMeansTrainer_setAverageMinDistance(PyBobLearnEMKMeansTrainerObj
   self->cxx->setAverageMinDistance(PyFloat_AS_DOUBLE(value));
 
   return 0;
-  BOB_CATCH_MEMBER("Average Min Distance could not be set", 0)
+  BOB_CATCH_MEMBER("Average Min Distance could not be set", -1)
 }
 
 
diff --git a/bob/learn/em/main.h b/bob/learn/em/main.h
index cf3ce1e3fb8467c0b73393b8be8ee8e7f961cf0c..1d61e87055b1fbadba14565cf233aa6656059860 100644
--- a/bob/learn/em/main.h
+++ b/bob/learn/em/main.h
@@ -113,18 +113,6 @@ bool init_BobLearnEMKMeansTrainer(PyObject* module);
 int PyBobLearnEMKMeansTrainer_Check(PyObject* o);
 
 
-// GMMBaseTrainer
-/*
-typedef struct {
-  PyObject_HEAD
-  boost::shared_ptr<bob::learn::em::GMMBaseTrainer> cxx;
-} PyBobLearnEMGMMBaseTrainerObject;
-
-extern PyTypeObject PyBobLearnEMGMMBaseTrainer_Type;
-bool init_BobLearnEMGMMBaseTrainer(PyObject* module);
-int PyBobLearnEMGMMBaseTrainer_Check(PyObject* o);
-*/
-
 // ML_GMMTrainer
 typedef struct {
   PyObject_HEAD
diff --git a/bob/learn/em/map_gmm_trainer.cpp b/bob/learn/em/map_gmm_trainer.cpp
index 1eb3a1881ddedf8babc1c2d658583914f76bd25e..767e283f96b65cf06e1ba515dbe18c49f7b388db 100644
--- a/bob/learn/em/map_gmm_trainer.cpp
+++ b/bob/learn/em/map_gmm_trainer.cpp
@@ -151,7 +151,7 @@ static int PyBobLearnEMMAPGMMTrainer_init(PyBobLearnEMMAPGMMTrainerObject* self,
     return PyBobLearnEMMAPGMMTrainer_init_base_trainer(self, args, kwargs);
   }
 
-  BOB_CATCH_MEMBER("cannot create MAP_GMMTrainer", 0)
+  BOB_CATCH_MEMBER("cannot create MAP_GMMTrainer", -1)
   return 0;
 }
 
@@ -214,7 +214,7 @@ int PyBobLearnEMMAPGMMTrainer_setRelevanceFactor(PyBobLearnEMMAPGMMTrainerObject
 
   self->cxx->setRelevanceFactor(PyFloat_AS_DOUBLE(value));
   return 0;
-  BOB_CATCH_MEMBER("relevance_factor could not be set", 0)
+  BOB_CATCH_MEMBER("relevance_factor could not be set", -1)
 }
 
 
@@ -240,7 +240,7 @@ int PyBobLearnEMMAPGMMTrainer_setAlpha(PyBobLearnEMMAPGMMTrainerObject* self, Py
 
   self->cxx->setAlpha(PyFloat_AS_DOUBLE(value));
   return 0;
-  BOB_CATCH_MEMBER("alpha could not be set", 0)
+  BOB_CATCH_MEMBER("alpha could not be set", -1)
 }
 
 
diff --git a/bob/learn/em/ml_gmm_trainer.cpp b/bob/learn/em/ml_gmm_trainer.cpp
index 515e9e903b55c003512fbb7459dc1ecacd7df266..708f9345bf960cfd5ad818c375497aadf75e5bbe 100644
--- a/bob/learn/em/ml_gmm_trainer.cpp
+++ b/bob/learn/em/ml_gmm_trainer.cpp
@@ -103,7 +103,7 @@ static int PyBobLearnEMMLGMMTrainer_init(PyBobLearnEMMLGMMTrainerObject* self, P
     else
       return PyBobLearnEMMLGMMTrainer_init_base_trainer(self, args, kwargs);
   }
-  BOB_CATCH_MEMBER("cannot create GMMBaseTrainer_init_bool", 0)
+  BOB_CATCH_MEMBER("cannot create GMMBaseTrainer_init_bool", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/plda_base.cpp b/bob/learn/em/plda_base.cpp
index bc9e5c3b341a759b9472c1ce68da3f45824b3139..2de15d854ef808a420c96571119c0532babe5316 100644
--- a/bob/learn/em/plda_base.cpp
+++ b/bob/learn/em/plda_base.cpp
@@ -146,7 +146,7 @@ static int PyBobLearnEMPLDABase_init(PyBobLearnEMPLDABaseObject* self, PyObject*
     PLDABase_doc.print_usage();
     return -1;
   }
-  BOB_CATCH_MEMBER("cannot create PLDABase", 0)
+  BOB_CATCH_MEMBER("cannot create PLDABase", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/plda_machine.cpp b/bob/learn/em/plda_machine.cpp
index 68df48851f9d8fad75e67790dad9bc127639e436..acd55004b26d4b96b22a9da6a8ae8f38fa825c64 100644
--- a/bob/learn/em/plda_machine.cpp
+++ b/bob/learn/em/plda_machine.cpp
@@ -120,7 +120,7 @@ static int PyBobLearnEMPLDAMachine_init(PyBobLearnEMPLDAMachineObject* self, PyO
     PLDAMachine_doc.print_usage();
     return -1;
   }
-  BOB_CATCH_MEMBER("cannot create PLDAMachine", 0)
+  BOB_CATCH_MEMBER("cannot create PLDAMachine", -1)
   return 0;
 }
 
diff --git a/bob/learn/em/plda_trainer.cpp b/bob/learn/em/plda_trainer.cpp
index e6d03d5c8e56a49c33f4c6abb0c36bbd1f01a823..4cd143830a6ef1f3e7b1f745ba57bb0d9beb6e07 100644
--- a/bob/learn/em/plda_trainer.cpp
+++ b/bob/learn/em/plda_trainer.cpp
@@ -174,7 +174,7 @@ static int PyBobLearnEMPLDATrainer_init(PyBobLearnEMPLDATrainerObject* self, PyO
     return -1;
   }
 
-  BOB_CATCH_MEMBER("cannot create PLDATrainer", 0)
+  BOB_CATCH_MEMBER("cannot create PLDATrainer", -1)
   return 0;
 }
 
@@ -278,7 +278,7 @@ int PyBobLearnEMPLDATrainer_setFMethod(PyBobLearnEMPLDATrainerObject* self, PyOb
   self->cxx->setInitFMethod(string2FMethod(PyString_AS_STRING(value)));
 
   return 0;
-  BOB_CATCH_MEMBER("init_f_method method could not be set", 0)
+  BOB_CATCH_MEMBER("init_f_method method could not be set", -1)
 }
 
 
@@ -304,7 +304,7 @@ int PyBobLearnEMPLDATrainer_setGMethod(PyBobLearnEMPLDATrainerObject* self, PyOb
   self->cxx->setInitGMethod(string2GMethod(PyString_AS_STRING(value)));
 
   return 0;
-  BOB_CATCH_MEMBER("init_g_method method could not be set", 0)
+  BOB_CATCH_MEMBER("init_g_method method could not be set", -1)
 }
 
 /***** init_sigma_method *****/
@@ -329,7 +329,7 @@ int PyBobLearnEMPLDATrainer_setSigmaMethod(PyBobLearnEMPLDATrainerObject* self,
   self->cxx->setInitSigmaMethod(string2SigmaMethod(PyString_AS_STRING(value)));
 
   return 0;
-  BOB_CATCH_MEMBER("init_sigma_method method could not be set", 0)
+  BOB_CATCH_MEMBER("init_sigma_method method could not be set", -1)
 }
 
 
@@ -354,7 +354,7 @@ int PyBobLearnEMPLDATrainer_setUseSumSecondOrder(PyBobLearnEMPLDATrainerObject*
   self->cxx->setUseSumSecondOrder(f(value));
 
   return 0;
-  BOB_CATCH_MEMBER("use_sum_second_order method could not be set", 0)
+  BOB_CATCH_MEMBER("use_sum_second_order method could not be set", -1)
 }