diff --git a/DDCore/src/OpaqueDataBinder.cpp b/DDCore/src/OpaqueDataBinder.cpp
index 115f9d0ff489bf7bb2b595eb021c520502e84e81..3d6b274e6aee81766aa3e32ee4a0c240177294ac 100644
--- a/DDCore/src/OpaqueDataBinder.cpp
+++ b/DDCore/src/OpaqueDataBinder.cpp
@@ -111,8 +111,18 @@ namespace DD4hep {
   }
 
 
-  template<typename KEY, typename VAL, typename OBJECT>
-  static void insert_map_item(const KEY& k, const string& val, OBJECT& block)  {
+  template<typename KEY, typename VAL>
+  static void insert_map_item(const KEY& k, const string& val, OpaqueDataBlock& block)  {
+    typedef map<KEY,VAL> map_t;
+    map_t& m = block.get<map_t>();
+    VAL v;
+    if ( !BasicGrammar::instance<VAL>().fromString(&v, val) )  {
+      except("Condition::map","++ Failed to convert conditions map entry.");
+    }
+    m.insert(make_pair(k,v));
+  }
+  template<typename KEY, typename VAL>
+  static void insert_map_item(const KEY& k, const string& val, Conditions::Condition& block)  {
     typedef map<KEY,VAL> map_t;
     map_t& m = block.get<map_t>();
     VAL v;