diff --git a/DDG4/python/DDSim/DD4hepSimulation.py b/DDG4/python/DDSim/DD4hepSimulation.py
index 46fd5e0c5b0275bfec4d91f99eed710e742d0a7b..1bea997ef1092411599bb00f73d53ddc7986ce69 100644
--- a/DDG4/python/DDSim/DD4hepSimulation.py
+++ b/DDG4/python/DDSim/DD4hepSimulation.py
@@ -610,7 +610,7 @@ SIM = DD4hepSimulation()
 """
     optionDict = parser._option_string_actions
     parameters = vars(self)
-    for parName, parameter in sorted(list(parameters.items()), sortParameters):
+    for parName, parameter in sorted(list(parameters.items()), key=sortParameters):
       if parName.startswith("_"):
         continue
       if isinstance(parameter, ConfigHelper):
@@ -619,7 +619,7 @@ SIM = DD4hepSimulation()
         steeringFileBase += "## %s \n" % "\n## ".join(parameter.__doc__.splitlines())
         steeringFileBase += "################################################################################\n"
         options = parameter.getOptions()
-        for opt, optionsDict in sorted(six.iteritems(options), sortParameters):
+        for opt, optionsDict in sorted(six.iteritems(options), key=sortParameters):
           if opt.startswith("_"):
             continue
           parValue = optionsDict['default']
@@ -733,20 +733,26 @@ SIM = DD4hepSimulation()
 # MODULE FUNCTIONS GO HERE
 ################################################################################
 
-def sortParameters(parA, parB):
-  """sort the parameters by name: first normal parameters, then set of
-  parameters based on ConfigHelper objects
-  """
-  parTypeA = parA[1]
-  parTypeB = parB[1]
-  if isinstance(parTypeA, ConfigHelper) and isinstance(parTypeB, ConfigHelper):
-    return 1 if str(parA[0]) > str(parB[0]) else -1
-  elif isinstance(parTypeA, ConfigHelper):
-    return 1
-  elif isinstance(parTypeB, ConfigHelper):
-    return -1
-  else:
-    return 1 if str(parA[0]) > str(parB[0]) else -1
+
+def sortParameters(key):
+  from functools import cmp_to_key
+
+  def _sortParameters(parA, parB):
+    """sort the parameters by name: first normal parameters, then set of
+    parameters based on ConfigHelper objects
+    """
+    parTypeA = parA[1]
+    parTypeB = parB[1]
+    if isinstance(parTypeA, ConfigHelper) and isinstance(parTypeB, ConfigHelper):
+      return 1 if str(parA[0]) > str(parB[0]) else -1
+    elif isinstance(parTypeA, ConfigHelper):
+      return 1
+    elif isinstance(parTypeB, ConfigHelper):
+      return -1
+    else:
+      return 1 if str(parA[0]) > str(parB[0]) else -1
+
+  return cmp_to_key(_sortParameters)(key)
 
 
 def getOutputLevel(level):