diff --git a/Control/AthenaConfiguration/python/AtlasSemantics.py b/Control/AthenaConfiguration/python/AtlasSemantics.py
index 051d19087de6fa621727478c5daf802e7cb47b84..82e5a7346d40191749865fb259b43db8562bf7ba 100644
--- a/Control/AthenaConfiguration/python/AtlasSemantics.py
+++ b/Control/AthenaConfiguration/python/AtlasSemantics.py
@@ -2,7 +2,7 @@
 
 from past.builtins import basestring
 import GaudiConfig2.semantics
-from GaudiKernel.GaudiHandles import PrivateToolHandleArray
+from GaudiKernel.GaudiHandles import PrivateToolHandleArray, PublicToolHandle, ServiceHandle
 import re
 import collections
 import copy
@@ -142,13 +142,17 @@ class PublicHandleArraySemantics(GaudiConfig2.semantics.PropertySemantics):
                                     format(value.__component_type__,v, self.name))
                 else:
                     newValue.append("{}/{}".format(v.__cpp_type__,v.name))
+
+            elif isinstance(v,(PublicToolHandle,ServiceHandle)):
+                newValue.append("{}/{}".format(v.getType(),v.getName()))
+
             elif isinstance(v,basestring):
                 #Check if componet is known ...
                 newValue.append(v)
                 pass
             else:
                 raise TypeError('Configurable expected, got {!r} in assignment to {}'.\
-                                format(value,self.name))
+                                format(v,self.name))
         return newValue
             
     def default(self, value):