 +        try:
 +            return [ self._decode(name) for name in self.attrs if name.startswith(prefix) ]
 +        except Exception, e:
-+            log.error("Unable to list properties: %s" % (e,))
 +            raise HTTPError(StatusResponse(
 +                statusForFailure(Failure()),
 +                "Unable to list properties"

         except TypeError:
             return False
+        except Exception, e:
+            log.error("Unable to read properties: %s" % (e,))
+            raise HTTPError(StatusResponse(
+                statusForFailure(Failure()),
+                "Unable to read properties"

         return r
 
     def _decode(clazz, name):
@@ -97,19 +98,83 @@
 
     def get(self, qname):
         try:
