-diff --git a/Lib/threading.py b/Lib/threading.py
-index cb49c4a..c9795a5 100644
---- a/Lib/threading.py
-+++ b/Lib/threading.py
-@@ -305,7 +305,7 @@ class _Condition(_Verbose):
+diff -up Python-2.7.11/Lib/threading.py.orig Python-2.7.11/Lib/threading.py
+--- Python-2.7.11/Lib/threading.py.orig	2015-12-05 19:47:09.000000000 +0000
++++ Python-2.7.11/Lib/threading.py	2015-12-13 10:10:48.627179027 +0000
+@@ -306,7 +306,7 @@ class _Condition(_Verbose):
          else:
              return True
  

                     _sleep(delay)
                 if not gotit:
                     if __debug__:
@@ -599,7 +602,7 @@ class _Event(_Verbose):
         finally:
             self.__cond.release()
 
-    def wait(self, timeout=None):
+    def wait(self, timeout=None, balancing=True):
         """Block until the internal flag is true.
 
         If the internal flag is true on entry, return immediately. Otherwise,
@@ -617,7 +620,7 @@ class _Event(_Verbose):
         self.__cond.acquire()
         try:
             if not self.__flag:
-                self.__cond.wait(timeout)
+                self.__cond.wait(timeout, balancing)
             return self.__flag
         finally:
             self.__cond.release()
@@ -908,7 +911,7 @@ class Thread(_Verbose):
             if 'dummy_threading' not in _sys.modules:
                 raise
 

         """Wait until notified or until a timeout occurs.
 
         If the calling thread has not acquired the lock when this method is
@@ -355,7 +355,10 @@ class _Condition(_Verbose):
                     remaining = endtime - _time()
                     if remaining <= 0:
                         break
