diff --git a/lib/py/src/protocol/TBinaryProtocol.py b/lib/py/src/protocol/TBinaryProtocol.py
index 93734d4..3c236fb 100644
--- a/lib/py/src/protocol/TBinaryProtocol.py
+++ b/lib/py/src/protocol/TBinaryProtocol.py
@@ -13,13 +13,23 @@
 
   """Binary implementation of the Thrift protocol driver."""
 
-  def __init__(self, trans):
+  VERSION_MASK = 0xffff0000
+  VERSION_1 = 0x80010000
+
+  def __init__(self, trans, strictRead=False, strictWrite=True):
     TProtocolBase.__init__(self, trans)
+    self.strictRead = strictRead
+    self.strictWrite = strictWrite
 
   def writeMessageBegin(self, name, type, seqid):
-    self.writeString(name)
-    self.writeByte(type)
-    self.writeI32(seqid)
+    if self.strictWrite:
+      self.writeI32(VERSION_1 | type)
+      self.writeString(name)
+      self.writeI32(seqid)
+    else:
+      self.writeString(name)
+      self.writeByte(type)
+      self.writeI32(seqid)
 
   def writeMessageEnd(self):
     pass
@@ -93,9 +103,20 @@
     self.trans.write(str)
 
   def readMessageBegin(self):
-    name = self.readString()
-    type = self.readByte()
-    seqid = self.readI32()
+    sz = self.readI32()
+    if sz < 0:
+      version = sz & VERSION_MASK
+      if version != VERSION_1:
+        raise TProtocolException(TProtocolException.BAD_VERSION, 'Bad version in readMessageBegin: %d' % (sz))
+      type = version & 0x000000ff
+      name = self.readString()
+      seqid = self.readI32()
+    else:
+      if self.strictRead:
+        raise TProtocolException(TProtocolException.BAD_VERSION, 'No protocol version header')
+      name = self.trans.readAll(sz)
+      type = self.readByte()
+      seqid = self.readI32()
     return (name, type, seqid)
 
   def readMessageEnd(self):
@@ -179,6 +200,10 @@
     return str
 
 class TBinaryProtocolFactory:
+  def __init__(self, strictRead=False, strictWrite=True):
+    self.strictRead = strictRead
+    self.strictWrite = strictWrite
+
   def getProtocol(self, trans):
-    prot = TBinaryProtocol(trans)
+    prot = TBinaryProtocol(trans, self.strictRead, self.strictWrite)
     return prot
diff --git a/lib/py/src/protocol/TProtocol.py b/lib/py/src/protocol/TProtocol.py
index f7d0b34..146a802 100644
--- a/lib/py/src/protocol/TProtocol.py
+++ b/lib/py/src/protocol/TProtocol.py
@@ -16,6 +16,7 @@
   INVALID_DATA = 1
   NEGATIVE_SIZE = 2
   SIZE_LIMIT = 3
+  BAD_VERSION = 4
 
   def __init__(self, type=UNKNOWN, message=None):
     TException.__init__(self, message)
