  
          # Update the resource because we've modified it
          self.resource.fp.restat()
-@@ -121,15 +189,34 @@
+@@ -121,15 +186,31 @@
              # RFC 2518 Section 12.13.1 says that removal of
              # non-existing property is not an error.
              pass
 +        except Exception, e:
-+            log.error("Unable to delete property {%s}%s: %s" % (qname[0], qname[1], e))
 +            raise HTTPError(StatusResponse(
 +                statusForFailure(Failure()),
 +                "Unable to delete property: {%s}%s" % qname

+        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"

                 "No such property: {%s}%s" % qname
             ))
+        except Exception, e:
+            raise HTTPError(StatusResponse(
+                statusForFailure(Failure()),
+                "Unable to read property: {%s}%s" % qname
