diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index 3edff1c..a2fa3c7 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -9,12 +9,49 @@
 from thrift.transport import TSocket
 from thrift.protocol import TBinaryProtocol
 
+import hotshot
+from hotshot import stats
+prof = None
+
+# Uncomment if you want to profile this biznizzy
+#prof = hotshot.Profile('hotshot_thrift_stats')
+#prof.start()
+
 import timing
 
-transport = TTransport.TBufferedTransport(TSocket.TSocket('localhost', 9090))
+host = 'localhost'
+port = 9090
+framed = False
+framedInput = True
+argi = 1
+
+# Parse args
+while argi < len(sys.argv):
+  if sys.argv[argi] == '-h':
+    parts = sys.argv[argi+1].split(':') 
+    host = parts[0]
+    port = int(parts[1])
+    argi += 1
+  elif sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
+    framed = True
+  elif sys.argv[argi] == '-fo':
+    framed = True
+    framedInput = False
+  argi += 1
+
+# Make socket
+socket = TSocket.TSocket(host, port)
+
+# Frame or buffer depending upon args
+if framed:
+  transport = TTransport.TFramedTransport(socket, framedInput, True)
+else:
+  transport = TTransport.TBufferedTransport(socket)
+
 protocol = TBinaryProtocol.TBinaryProtocol()
 client = ThriftTest.Client(transport, protocol)
 
+# Connect!
 transport.open()
 
 # Start debug timing
@@ -63,4 +100,12 @@
 timing.finish()
 print "Total time: %d microsecs" % timing.micro()
 
+# Close!
 transport.close()
+
+# Profiler output
+if prof != None:
+  prof.stop()
+  prof.close()
+  s = stats.load('hotshot_thrift_stats')
+  s.sort_stats('time').print_stats()
