 +            md5 = md5.getMD5()
 +            destination.writeDeadProperty(TwistedGETContentMD5.fromString(md5))
 +
++        # Update the content-type value on the resource if it is new
++        if source is None:
++            content_type = request.headers.getHeader("content-type")
++            if content_type is not None:
++                destination.writeDeadProperty(davxml.GETContentType.fromString("%s/%s" % (content_type.mediaType, content_type.mediaSubtype,)))
++
 +        response = IResponse(response)
 +        
 +        # Do quota check on destination

===================================================================
--- twisted/web2/dav/method/put_common.py	(revision 0)
+++ twisted/web2/dav/method/put_common.py	(revision 0)
@@ -0,0 +1,252 @@
+##
+# Copyright (c) 2005-2006 Apple Computer, Inc. All rights reserved.
+#

+from twisted.python import failure, log
+from twisted.python.filepath import FilePath
+from twisted.web2 import responsecode
+from twisted.web2.dav import davxml
+from twisted.web2.dav.fileop import copy, delete, put
+from twisted.web2.dav.resource import TwistedGETContentMD5
+from twisted.web2.dav.stream import MD5StreamWrapper
