diff --git a/src/python/of10/error.py b/src/python/of10/error.py
index 700338b..f545bc5 100644
--- a/src/python/of10/error.py
+++ b/src/python/of10/error.py
@@ -19,6 +19,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.err_type = OFPET_HELLO_FAILED
         self.data = ""
 
@@ -66,6 +67,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.err_type = OFPET_BAD_REQUEST
         self.data = ""
 
@@ -113,6 +115,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.err_type = OFPET_BAD_ACTION
         self.data = ""
 
@@ -160,6 +163,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.err_type = OFPET_FLOW_MOD_FAILED
         self.data = ""
 
@@ -207,6 +211,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.err_type = OFPET_PORT_MOD_FAILED
         self.data = ""
 
@@ -254,6 +259,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.err_type = OFPET_QUEUE_OP_FAILED
         self.data = ""
 
diff --git a/src/python/of10/message.py b/src/python/of10/message.py
index 5b4ce02..6acb063 100644
--- a/src/python/of10/message.py
+++ b/src/python/of10/message.py
@@ -127,6 +127,7 @@
         ofp_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_BARRIER_REPLY
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -233,6 +234,7 @@
         ofp_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_BARRIER_REQUEST
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -340,6 +342,7 @@
         ofp_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ECHO_REPLY
+        self.xid = None
         self.data = ""
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -460,6 +463,7 @@
         ofp_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ECHO_REQUEST
+        self.xid = None
         self.data = ""
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -582,6 +586,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.data = ""
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -707,6 +712,7 @@
         ofp_switch_features.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_FEATURES_REPLY
+        self.xid = None
         self.ports = []
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -826,6 +832,7 @@
         ofp_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_FEATURES_REQUEST
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -942,6 +949,7 @@
         ofp_flow_mod.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_FLOW_MOD
+        self.xid = None
         self.actions = []
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -1069,6 +1077,7 @@
         ofp_flow_removed.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_FLOW_REMOVED
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -1177,6 +1186,7 @@
         ofp_switch_config.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_GET_CONFIG_REPLY
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -1283,6 +1293,7 @@
         ofp_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_GET_CONFIG_REQUEST
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -1390,6 +1401,7 @@
         ofp_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_HELLO
+        self.xid = None
         self.data = ""
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -1514,6 +1526,7 @@
         ofp_packet_in.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_PACKET_IN
+        self.xid = None
         self.data = ""
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -1638,6 +1651,7 @@
         ofp_packet_out.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_PACKET_OUT
+        self.xid = None
         self.actions = []
         self.data = ""
         for (k, v) in kwargs.items():
@@ -1776,6 +1790,7 @@
         ofp_port_mod.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_PORT_MOD
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -1884,6 +1899,7 @@
         ofp_port_status.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_PORT_STATUS
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -1992,6 +2008,7 @@
         ofp_queue_get_config_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_QUEUE_GET_CONFIG_REPLY
+        self.xid = None
         self.queues = []
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -2110,6 +2127,7 @@
         ofp_queue_get_config_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_QUEUE_GET_CONFIG_REQUEST
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -2218,6 +2236,7 @@
         ofp_switch_config.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_SET_CONFIG
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -2326,6 +2345,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -2434,6 +2454,7 @@
         ofp_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         for (k, v) in kwargs.items():
             if hasattr(self, k):
                 setattr(self, k, v)
@@ -2542,6 +2563,7 @@
         ofp_vendor_header.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_VENDOR
+        self.xid = None
         self.data = ""
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -2765,6 +2787,7 @@
         ofp_aggregate_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         self.stats_type = OFPST_AGGREGATE
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -2813,6 +2836,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         self.stats_type = OFPST_AGGREGATE
         # stats: Array of type aggregate_stats_entry
         self.entries = []
@@ -2868,6 +2892,7 @@
         ofp_desc_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         self.stats_type = OFPST_DESC
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -2916,6 +2941,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         self.stats_type = OFPST_DESC
         # stats: Array of type desc_stats_entry
         self.entries = []
@@ -2971,6 +2997,7 @@
         ofp_flow_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         self.stats_type = OFPST_FLOW
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -3019,6 +3046,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         self.stats_type = OFPST_FLOW
         # stats: Array of type flow_stats_entry
         self.entries = []
@@ -3074,6 +3102,7 @@
         ofp_port_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         self.stats_type = OFPST_PORT
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -3122,6 +3151,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         self.stats_type = OFPST_PORT
         # stats: Array of type port_stats_entry
         self.entries = []
@@ -3177,6 +3207,7 @@
         ofp_queue_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         self.stats_type = OFPST_QUEUE
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -3225,6 +3256,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         self.stats_type = OFPST_QUEUE
         # stats: Array of type queue_stats_entry
         self.entries = []
@@ -3280,6 +3312,7 @@
         ofp_table_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         self.stats_type = OFPST_TABLE
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -3328,6 +3361,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         self.stats_type = OFPST_TABLE
         # stats: Array of type table_stats_entry
         self.entries = []
diff --git a/src/python/oftest/controller.py b/src/python/oftest/controller.py
index cd7bbcf..944117a 100644
--- a/src/python/oftest/controller.py
+++ b/src/python/oftest/controller.py
@@ -256,7 +256,7 @@
                         rep = ofp.message.echo_reply()
                         rep.xid = hdr.xid
                         # Ignoring additional data
-                        self.message_send(rep.pack(), zero_xid=True)
+                        self.message_send(rep.pack())
                         continue
 
                 # Log error messages
@@ -610,7 +610,7 @@
         else:
             return (None, None)
 
-    def transact(self, msg, timeout=-1, zero_xid=False):
+    def transact(self, msg, timeout=-1):
         """
         Run a message transaction with the switch
 
@@ -620,13 +620,9 @@
 
         @param msg The message object to send; must not be a string
         @param timeout The timeout in seconds; if -1 use default.
-        @param zero_xid Normally, if the XID is 0 an XID will be generated
-        for the message.  Set zero_xid to override this behavior
-        @return The matching message object or None if unsuccessful
-
         """
 
-        if not zero_xid and msg.xid == 0:
+        if msg.xid == None:
             msg.xid = ofutils.gen_xid()
 
         self.logger.debug("Running transaction %d" % msg.xid)
@@ -653,16 +649,12 @@
             self.logger.warning("No response for xid " + str(self.xid))
         return (resp, pkt)
 
-    def message_send(self, msg, zero_xid=False):
+    def message_send(self, msg):
         """
         Send the message to the switch
 
         @param msg A string or OpenFlow message object to be forwarded to
         the switch.
-        @param zero_xid If msg is an OpenFlow object (not a string) and if
-        the XID in the header is 0, then an XID will be generated
-        for the message.  Set zero_xid to override this behavior (and keep an
-        existing 0 xid)
         """
 
         if not self.switch_socket:
@@ -670,7 +662,7 @@
             raise Exception("no socket")
         #@todo If not string, try to pack
         if type(msg) != type(""):
-            if msg.xid == 0 and not zero_xid:
+            if msg.xid == None:
                 msg.xid = ofutils.gen_xid()
             outpkt = msg.pack()
         else:
diff --git a/src/python/oftest/illegal_message.py b/src/python/oftest/illegal_message.py
index 2d0ce7b..fa404cf 100644
--- a/src/python/oftest/illegal_message.py
+++ b/src/python/oftest/illegal_message.py
@@ -29,6 +29,7 @@
         of10.ofp_header.__init__(self)
         self.version = of10.OFP_VERSION
         self.type = ILLEGAL_MESSAGE_TYPE
+        self.xid = None
         self.data = ""
         for (k, v) in kwargs.items():
             if hasattr(self, k):
diff --git a/tools/munger/scripts/error_gen.py b/tools/munger/scripts/error_gen.py
index c8f4bf2..512a567 100644
--- a/tools/munger/scripts/error_gen.py
+++ b/tools/munger/scripts/error_gen.py
@@ -39,6 +39,7 @@
         ofp_error_msg.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_ERROR
+        self.xid = None
         self.err_type = --ERROR_NAME--
         self.data = ""
 
diff --git a/tools/munger/scripts/message_gen.py b/tools/munger/scripts/message_gen.py
index a9531dd..5b6e27b 100644
--- a/tools/munger/scripts/message_gen.py
+++ b/tools/munger/scripts/message_gen.py
@@ -297,6 +297,7 @@
         _p2(parent + ".__init__(self)")
     _p2("self.version = OFP_VERSION")
     _p2("self.type = " + msg_name)
+    _p2("self.xid = None")
     if has_list:
         _p2('self.' + list_var + ' = []')
     if has_string:
@@ -534,6 +535,7 @@
         ofp_--TYPE--_stats_request.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REQUEST
+        self.xid = None
         self.stats_type = --STATS_NAME--
         for (k, v) in kwargs.items():
             if hasattr(self, k):
@@ -593,6 +595,7 @@
         ofp_stats_reply.__init__(self)
         self.version = OFP_VERSION
         self.type = OFPT_STATS_REPLY
+        self.xid = None
         self.stats_type = --STATS_NAME--
         # stats: Array of type --TYPE--_stats_entry
         self.entries = []
