--- /dev/null
+--- xen-4.0.1/tools/python/xen/util/xmlrpcclient.py.orig 2010-02-02 20:43:01.000000000 +0000
++++ xen-4.0.1/tools/python/xen/util/xmlrpcclient.py 2010-08-18 21:36:05.000000000 +0100
+@@ -22,6 +22,7 @@
+ import string
+ import xmlrpclib
+ from types import StringTypes
++from sys import hexversion
+
+
+ try:
+@@ -54,7 +55,12 @@
+ return xmlrpclib.Transport.request(self, host, '/RPC2',
+ request_body, verbose)
+ def make_connection(self, host):
+- return HTTPUnix(self.__handler)
++ if hexversion < 0x02070000:
++ # python 2.6 or earlier
++ return HTTPUnix(self.__handler)
++ else:
++ # xmlrpclib.Transport changed in python 2.7
++ return HTTPUnixConnection(self.__handler)
+
+
+ # We need our own transport for HTTPS, because xmlrpclib.SafeTransport is
+--- xen-4.0.1/tools/python/xen/util/xmlrpclib2.py.orig 2010-02-02 20:43:01.000000000 +0000
++++ xen-4.0.1/tools/python/xen/util/xmlrpclib2.py 2010-08-18 21:35:40.000000000 +0100
+@@ -58,6 +58,9 @@
+ # some bugs in Keep-Alive handling and also enabled it by default
+ class XMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
+ protocol_version = "HTTP/1.1"
++ # xend crashes in python 2.7 unless disable_nagle_algorithm = False
++ # it isn't used in earlier versions so it is harmless to set it generally
++ disable_nagle_algorithm = False
+
+ def __init__(self, hosts_allowed, request, client_address, server):
+ self.hosts_allowed = hosts_allowed