diff --git a/DDG4/python/DDG4.py b/DDG4/python/DDG4.py
index 4f1289325de344ed5369e77db32d744270e82758..214ae4523a9961ce4d6124b65bfb9f55ba3ea104 100644
--- a/DDG4/python/DDG4.py
+++ b/DDG4/python/DDG4.py
@@ -148,7 +148,7 @@ def _setKernelProperty(self, name, value):
   raise KeyError(msg)
 
 #---------------------------------------------------------------------------
-def _kernel_phase(self,name):        return self.addSimplePhase(name,False)
+def _kernel_phase(self,name):        return self.addSimplePhase(str(name),False)
 #---------------------------------------------------------------------------
 def _kernel_worker(self):            return Kernel(self.get().createWorker())
 #---------------------------------------------------------------------------
@@ -165,46 +165,46 @@ Kernel.terminate = _kernel_terminate
 ActionHandle = Sim.ActionHandle
 #---------------------------------------------------------------------------
 def SensitiveAction(kernel,nam,det,shared=False):
-  return Interface.createSensitive(kernel,nam,det,shared)
+  return Interface.createSensitive(kernel,str(nam),det,shared)
 #---------------------------------------------------------------------------
 def Action(kernel,nam,shared=False):
-  return Interface.createAction(kernel,nam,shared)
+  return Interface.createAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def Filter(kernel,nam,shared=False):
-  return Interface.createFilter(kernel,nam,shared)
+  return Interface.createFilter(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def PhaseAction(kernel,nam,shared=False):
-  return Interface.createPhaseAction(kernel,nam,shared)
+  return Interface.createPhaseAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def RunAction(kernel,nam,shared=False):
-  return Interface.createRunAction(kernel,nam,shared)
+  return Interface.createRunAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def EventAction(kernel,nam,shared=False):
-  return Interface.createEventAction(kernel,nam,shared)
+  return Interface.createEventAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def GeneratorAction(kernel,nam,shared=False):
-  return Interface.createGeneratorAction(kernel,nam,shared)
+  return Interface.createGeneratorAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def TrackingAction(kernel,nam,shared=False):
-  return Interface.createTrackingAction(kernel,nam,shared)
+  return Interface.createTrackingAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def SteppingAction(kernel,nam,shared=False):
-  return Interface.createSteppingAction(kernel,nam,shared)
+  return Interface.createSteppingAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def StackingAction(kernel,nam,shared=False):
-  return Interface.createStackingAction(kernel,nam,shared)
+  return Interface.createStackingAction(kernel,str(nam), shared)
 #---------------------------------------------------------------------------
 def DetectorConstruction(kernel,nam):
-  return Interface.createDetectorConstruction(kernel,nam)
+  return Interface.createDetectorConstruction(kernel,str(nam))
 #---------------------------------------------------------------------------
 def PhysicsList(kernel,nam):
-  return Interface.createPhysicsList(kernel,nam)
+  return Interface.createPhysicsList(kernel,str(nam))
 #---------------------------------------------------------------------------
 def UserInitialization(kernel, nam):
-  return Interface.createUserInitialization(kernel,nam)
+  return Interface.createUserInitialization(kernel,str(nam))
 #---------------------------------------------------------------------------
 def SensitiveSequence(kernel, nam):
-  return Interface.createSensDetSequence(kernel,nam)
+  return Interface.createSensDetSequence(kernel,str(nam))
 #---------------------------------------------------------------------------
 def _setup(obj):
   def _adopt(self,action):  self.__adopt(action.get())
@@ -272,6 +272,8 @@ def _get(self, name):
 
 def _set(self, name, value):
   a = Interface.toAction(self)
+  if isinstance(value,list):
+    value = [str(x) for x in value]
   if Interface.setProperty(a,name,str(value)):
     return
   msg = 'Geant4Action::SetProperty [Unhandled]: Cannot set '+a.name()+'.'+name+' = '+str(value)
diff --git a/DDG4/python/DDSim/DD4hepSimulation.py b/DDG4/python/DDSim/DD4hepSimulation.py
index a937b3a7762976ee5ffc75dfeb4405d05122064b..cb49d140f5a94bcbfca13b11853782c816932115 100644
--- a/DDG4/python/DDSim/DD4hepSimulation.py
+++ b/DDG4/python/DDSim/DD4hepSimulation.py
@@ -292,7 +292,7 @@ class DD4hepSimulation(object):
     dd4hep.setPrintLevel(self.printLevel)
     #kernel.setOutputLevel('Compact',1)
 
-    kernel.loadGeometry("file:"+ self.compactFile )
+    kernel.loadGeometry(str("file:"+ self.compactFile ))
     detectorDescription = kernel.detectorDescription()
 
     DDG4.importConstants( detectorDescription )
@@ -459,7 +459,7 @@ class DD4hepSimulation(object):
 
     ## add the G4StepLimiterPhysics to activate the max step limits in volumes
     ph = DDG4.PhysicsList(kernel,'Geant4PhysicsList/Myphysics')
-    ph.addPhysicsConstructor('G4StepLimiterPhysics')
+    ph.addPhysicsConstructor(str('G4StepLimiterPhysics'))
     _phys.add(ph)
 
     dd4hep.setPrintLevel(self.printLevel)