 +                sleep(random() / 10) # OMG Brutal Hax
 +            else:
 +                break
-+    
-+
+ 
          # Update the resource because we've modified it
          self.resource.fp.restat()
- 

+            legacy = True
 
+        try:
+            result = unpickle(data)
+        except UnpicklingError:
+            legacy = True
+
+            try:
+                doc = davxml.WebDAVDocument.fromString(data)
+                result = doc.root_element
+            except ValueError:
+                msg = ("Invalid property value stored on server: {%s}%s %s"
+                       % (qname[0], qname[1], data))
+                log.err(msg)

+        #  1- Started with XML
+        #  2- Started compressing the XML due to limits on xattr size
+        #  3- Switched to pickle which is faster, still compressing
+        #  4- Back to compressed XML for interoperability, size
+        #
+        # We only write the current format, but we also read the old
+        # ones for compatibility.
