diff --git a/GaudiKernel/python/GaudiKernel/PropertyProxy.py b/GaudiKernel/python/GaudiKernel/PropertyProxy.py
index c8a5c613aee33adcdd03cddf222cde82437d4ca8..4211f0630225eb6c2abaf46f3391fc9a956e44ba 100644
--- a/GaudiKernel/python/GaudiKernel/PropertyProxy.py
+++ b/GaudiKernel/python/GaudiKernel/PropertyProxy.py
@@ -393,6 +393,9 @@ class DataObjectHandleBasePropertyProxy(PropertyProxy):
             return DataObjectHandleBase(value)
         elif isinstance(value, DataObjectHandleBase):
             return DataObjectHandleBase(value.__str__())
+        else:
+            raise ValueError("received an instance of %s, but %s expected" %
+                             (type(value), 'str or DataObjectHandleBase'))
 
 
 def PropertyProxyFactory(descr, doc, default):
diff --git a/GaudiKernel/tests/nose/test_Configurables.py b/GaudiKernel/tests/nose/test_Configurables.py
index 9ea4cd18bdf597347a6d03d2e1f2499887adaa50..a9a4c0341ac0e577824f7f18a8787be7e2b31d53 100644
--- a/GaudiKernel/tests/nose/test_Configurables.py
+++ b/GaudiKernel/tests/nose/test_Configurables.py
@@ -1,10 +1,12 @@
 # Prepare dummy configurables
 from GaudiKernel.Configurable import ConfigurableAlgorithm, Configurable
+from GaudiKernel.DataObjectHandleBase import DataObjectHandleBase
 
 
 class MyAlg(ConfigurableAlgorithm):
     __slots__ = {'Text': 'some text',
-                 'Int': 23}
+                 'Int': 23,
+                 'DataHandle': DataObjectHandleBase('Location')}
 
     def getDlls(self):
         return 'Dummy'
@@ -26,7 +28,10 @@ def test_correct():
     a = MyAlg()
     a.Int = 42
     a.Text = 'value'
-    assert a.getValuedProperties() == {'Int': 42, 'Text': 'value'}
+    a.DataHandle = '/Event/X'
+    assert a.getValuedProperties() == {
+        'Int': 42, 'Text': 'value',
+        'DataHandle': DataObjectHandleBase('/Event/X')}
 
 
 def test_invalid_value():
@@ -53,6 +58,17 @@ def test_invalid_value():
         assert False, 'ValueError exception expected, got %s' % type(
             x).__name__
 
+    try:
+        a.DataHandle = [123]
+        assert False, 'exception expected'
+    except AssertionError:
+        raise
+    except ValueError:
+        pass
+    except Exception, x:
+        assert False, 'ValueError exception expected, got %s' % type(
+            x).__name__
+
 
 def test_invalid_key():
     a = MyAlg()