diff --git a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
index e3d53a5cddf38ce06d9841d836a2bfb0030c394d..de590202458756e5877973b70bc64031832f7ec5 100644
--- a/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
+++ b/bob/learn/em/include/bob.learn.em/KMeansTrainer.h
@@ -42,12 +42,6 @@ class KMeansTrainer
      */
     KMeansTrainer(InitializationMethod=RANDOM);
 
-    /*     
-    KMeansTrainer(double convergence_threshold=0.001,
-      size_t max_iterations=10, bool compute_likelihood=true,
-      InitializationMethod=RANDOM);*/
-      
-
     /**
      * @brief Virtualize destructor
      */
diff --git a/bob/learn/em/kmeans_trainer.cpp b/bob/learn/em/kmeans_trainer.cpp
index d346272623804cb13a0bc38c7581074f5e702c49..92da9c1a096bab332d68bb06163ecaab6a24d04b 100644
--- a/bob/learn/em/kmeans_trainer.cpp
+++ b/bob/learn/em/kmeans_trainer.cpp
@@ -14,7 +14,13 @@
 /******************************************************************/
 
 // InitializationMethod type conversion
-static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM",  bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}, {"KMEANS_PLUS_PLUS", bob::learn::em::KMeansTrainer::InitializationMethod::KMEANS_PLUS_PLUS}};
+
+#if BOOST_VERSION >= 104700
+  static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM",  bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM},  {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}, {"KMEANS_PLUS_PLUS", bob::learn::em::KMeansTrainer::InitializationMethod::KMEANS_PLUS_PLUS}};
+#else
+  static const std::map<std::string, bob::learn::em::KMeansTrainer::InitializationMethod> IM = {{"RANDOM",  bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM}, {"RANDOM_NO_DUPLICATE", bob::learn::em::KMeansTrainer::InitializationMethod::RANDOM_NO_DUPLICATE}};
+#endif
+
 static inline bob::learn::em::KMeansTrainer::InitializationMethod string2IM(const std::string& o){            /* converts string to InitializationMethod type */
   auto it = IM.find(o);
   if (it == IM.end()) throw std::runtime_error("The given InitializationMethod '" + o + "' is not known; choose one of ('RANDOM', 'RANDOM_NO_DUPLICATE', 'KMEANS_PLUS_PLUS')");