diff --git a/lib/py/src/server/THttpServer.py b/lib/py/src/server/THttpServer.py
index be54bab..6f92173 100644
--- a/lib/py/src/server/THttpServer.py
+++ b/lib/py/src/server/THttpServer.py
@@ -73,7 +73,7 @@
         oprot = thttpserver.outputProtocolFactory.getProtocol(otrans)
         try:
           thttpserver.processor.process(iprot, oprot)
-        except ResponseException, exn:
+        except ResponseException as exn:
           exn.handler(self)
         else:
           self.send_response(200)
diff --git a/lib/py/src/server/TProcessPoolServer.py b/lib/py/src/server/TProcessPoolServer.py
index 7a695a8..86c4312 100644
--- a/lib/py/src/server/TProcessPoolServer.py
+++ b/lib/py/src/server/TProcessPoolServer.py
@@ -59,7 +59,7 @@
                 self.serveClient(client)
             except (KeyboardInterrupt, SystemExit):
                 return 0
-            except Exception, x:
+            except Exception as x:
                 logging.exception(x)
 
     def serveClient(self, client):
@@ -74,7 +74,7 @@
                 self.processor.process(iprot, oprot)
         except TTransportException, tx:
             pass
-        except Exception, x:
+        except Exception as x:
             logging.exception(x)
 
         itrans.close()
@@ -106,7 +106,7 @@
                 break
             except (SystemExit, KeyboardInterrupt):
                 break
-            except Exception, x:
+            except Exception as x:
                 logging.exception(x)
 
         self.isRunning.value = False
diff --git a/lib/py/src/server/TServer.py b/lib/py/src/server/TServer.py
index 2f24842..97097cc 100644
--- a/lib/py/src/server/TServer.py
+++ b/lib/py/src/server/TServer.py
@@ -84,7 +84,7 @@
           self.processor.process(iprot, oprot)
       except TTransport.TTransportException, tx:
         pass
-      except Exception, x:
+      except Exception as x:
         logging.exception(x)
 
       itrans.close()
@@ -108,7 +108,7 @@
         t.start()
       except KeyboardInterrupt:
         raise
-      except Exception, x:
+      except Exception as x:
         logging.exception(x)
 
   def handle(self, client):
@@ -121,7 +121,7 @@
         self.processor.process(iprot, oprot)
     except TTransport.TTransportException, tx:
       pass
-    except Exception, x:
+    except Exception as x:
       logging.exception(x)
 
     itrans.close()
@@ -161,7 +161,7 @@
         self.processor.process(iprot, oprot)
     except TTransport.TTransportException, tx:
       pass
-    except Exception, x:
+    except Exception as x:
       logging.exception(x)
 
     itrans.close()
@@ -174,7 +174,7 @@
         t = threading.Thread(target=self.serveThread)
         t.setDaemon(self.daemon)
         t.start()
-      except Exception, x:
+      except Exception as x:
         logging.exception(x)
 
     # Pump the socket for clients
@@ -183,7 +183,7 @@
       try:
         client = self.serverTransport.accept()
         self.clients.put(client)
-      except Exception, x:
+      except Exception as x:
         logging.exception(x)
 
 
@@ -208,7 +208,7 @@
     def try_close(file):
       try:
         file.close()
-      except IOError, e:
+      except IOError as e:
         logging.warning(e, exc_info=True)
 
     self.serverTransport.listen()
@@ -242,7 +242,7 @@
                 self.processor.process(iprot, oprot)
             except TTransport.TTransportException, tx:
               pass
-            except Exception, e:
+            except Exception as e:
               logging.exception(e)
               ecode = 1
           finally:
@@ -253,7 +253,7 @@
 
       except TTransport.TTransportException, tx:
         pass
-      except Exception, x:
+      except Exception as x:
         logging.exception(x)
 
   def collect_children(self):
