diff --git a/DDCore/include/DD4hep/Dictionary.h b/DDCore/include/DD4hep/Dictionary.h
index b5868c96b264b98152497f162dcdf7f3b9b99941..bd057859c407f7514fe4d6d06a75ba46144318ae 100644
--- a/DDCore/include/DD4hep/Dictionary.h
+++ b/DDCore/include/DD4hep/Dictionary.h
@@ -21,6 +21,8 @@
 
 #include <vector>
 #include <map>
+#include <string>
+
 typedef DD4hep::Geometry::PlacedVolumeExtension::VolID VolID;
 
 #include "TRint.h"
@@ -53,17 +55,23 @@ namespace DD4hep {
 #pragma link C++ namespace DD4hep::DDSegmentation;
 
 template pair<unsigned int, string>;
-#pragma link C++ class pair<unsigned int,std::string>+;
+#pragma link C++ class pair<unsigned int,string>+;
 
-template class DD4hep::Geometry::Handle<NamedObject>;
-template class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >;
+template class DD4hep::Geometry::Handle<DD4hep::NamedObject>;
+template class pair< string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >;
+template class map< string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >;
 #pragma link C++ class DD4hep::NamedObject+;
 #pragma link C++ class DD4hep::Geometry::Ref_t+;
 #pragma link C++ class DD4hep::Geometry::Handle<DD4hep::NamedObject>+;
 #pragma link C++ class pair<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+;
 #pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >+;
+//#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::*+;
 #pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator;
-#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::const_iterator;
+//#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::const_iterator;
+//#pragma link C++ class map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::reverse_iterator;
+#pragma link C++ function operator==( const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator&,const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator& ); 
+#pragma link C++ function operator!=( const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator&,const map<string, DD4hep::Geometry::Handle<DD4hep::NamedObject> >::iterator& ); 
+
 
 #pragma link C++ class DD4hep::ObjectExtensions+;
 template class DD4hep::Geometry::Handle<TNamed>;
@@ -178,6 +186,9 @@ template class DD4hep::Geometry::Handle<TNamed>;
 #pragma link C++ class map<string,DD4hep::Geometry::DetElement>+;
 #pragma link C++ class map<string,DD4hep::Geometry::DetElement>::iterator;
 #pragma link C++ class map<string,DD4hep::Geometry::DetElement>::const_iterator;
+#pragma link C++ function operator==( const map<string, DD4hep::Geometry::DetElement >::iterator&,const map<string, DD4hep::Geometry::DetElement >::iterator& ); 
+#pragma link C++ function operator!=( const map<string, DD4hep::Geometry::DetElement >::iterator&,const map<string, DD4hep::Geometry::DetElement >::iterator& ); 
+
 
 #pragma link C++ class DD4hep::Geometry::SensitiveDetector+;
 #pragma link C++ class DD4hep::Geometry::SensitiveDetectorObject+;
@@ -273,8 +284,17 @@ template vector<pair<string, int> >::iterator;
 
 #pragma link C++ class pair<string, string>+;
 #pragma link C++ class map<string, string>+;
+#pragma link C++ class map<string, string>::iterator;
+#pragma link C++ class map<string, string>::const_iterator;
+#pragma link C++ function operator==( const map<string, string>::iterator&, const map<string, string>::iterator& );
+#pragma link C++ function operator!=( const map<string, string>::iterator&, const map<string, string>::iterator& );
+
 #pragma link C++ class pair<string, map<string, string> >+;
 #pragma link C++ class map<string, map<string, string> >+;
+#pragma link C++ class map<string, map<string,string>>::iterator;
+#pragma link C++ class map<string, map<string,string>>::const_iterator;
+#pragma link C++ function operator==( const map<string, map<string,string>>::iterator&, const map<string, map<string,string>>::iterator& );
+#pragma link C++ function operator!=( const map<string, map<string,string>>::iterator&, const map<string, map<string,string>>::iterator& );
 
 #pragma link C++ class DD4hep::Geometry::LCDD+;
 
diff --git a/DDCore/include/ROOT/LinkDef.h b/DDCore/include/ROOT/LinkDef.h
index cf2e5f991620c01ff163ffe3d82a16d529547de6..cea2a4e8bb0cbec9cfcccd5200664993a265580b 100644
--- a/DDCore/include/ROOT/LinkDef.h
+++ b/DDCore/include/ROOT/LinkDef.h
@@ -7,4 +7,3 @@
 //
 // Keep this file EMPTY. All CINT statements can be put in header files preceeding this one.....
 //
-
diff --git a/DDG4/include/DDG4/DDG4Dict.h b/DDG4/include/DDG4/DDG4Dict.h
index af88076721e355ff900e69cc53e01559732f104f..3750db29d524c7d648b79f06ea23ab50aafe0ac9 100644
--- a/DDG4/include/DDG4/DDG4Dict.h
+++ b/DDG4/include/DDG4/DDG4Dict.h
@@ -45,6 +45,11 @@ namespace DD4hep {
 #pragma link C++ class DD4hep::Simulation::Geant4Particle+;
 #pragma link C++ class std::vector<DD4hep::Simulation::Geant4Particle*>+;
 #pragma link C++ class std::map<int,DD4hep::Simulation::Geant4Particle*>+;
+#pragma link C++ class map<int,DD4hep::Simulation::Geant4Particle*>::iterator;
+#pragma link C++ class map<int,DD4hep::Simulation::Geant4Particle*>::const_iterator;
+#pragma link C++ function operator==( const map<int,DD4hep::Simulation::Geant4Particle*>::iterator&, const map<int,DD4hep::Simulation::Geant4Particle*>::iterator& );
+#pragma link C++ function operator!=( const map<int,DD4hep::Simulation::Geant4Particle*>::iterator&, const map<int,DD4hep::Simulation::Geant4Particle*>::iterator& );
+
 
 /// Dictionaires for basic Hit data structures
 #pragma link C++ class DD4hep::Simulation::Geant4HitData+;
diff --git a/DDG4/python/DDG4.py b/DDG4/python/DDG4.py
index c621d7619024976d73d38e48c99448a5b4297213..c2233f3ee12a2f6c5f42dddc8ad8d26684254e64 100644
--- a/DDG4/python/DDG4.py
+++ b/DDG4/python/DDG4.py
@@ -226,18 +226,18 @@ _props('Geant4PhysicsListActionSequence')
 
 
 
-class Iter():
-  def Iterator(self): 
-    ''' Fix for map iteration on macos '''
-    n = self.m.size()
-    it = self.m.begin()
-    for i in range(0,n):
-      yield it
-      it.__preinc__()
-  def __init__(self,m):
-    self.m = m
-  def __iter__(self):
-    return self.Iterator()
+#class Iter():
+#  def Iterator(self): 
+#    ''' Fix for map iteration on macos '''
+#    n = self.m.size()
+#    it = self.m.begin()
+#    for i in range(0,n):
+#      yield it
+#      it.__preinc__()
+#  def __init__(self,m):
+#    self.m = m
+#  def __iter__(self):
+#    return self.Iterator()
 
 
 
@@ -270,7 +270,7 @@ class Simple:
 
   def printDetectors(self):
     print '+++  List of detectors:'
-    for i in Iter( self.lcdd.detectors() ):
+    for i in self.lcdd.detectors():
       o = DetElement(i.second)
       sd = self.lcdd.sensitiveDetector(o.name())
       if sd.isValid():