LOL - 2.7 requires very different code.  Annoying ;-)
diff --git a/Lib/threading.py b/Lib/threading.py
index 167f8c7..e81471b 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -531,11 +531,11 @@
         raise a ValueError.
 
         """
-        with self._cond:
-            if self._value >= self._initial_value:
+        with self._Semaphore__cond:
+            if self._Semaphore__value >= self._initial_value:
                 raise ValueError("Semaphore released too many times")
-            self._value += 1
-            self._cond.notify()
+            self._Semaphore__value += 1
+            self._Semaphore__cond.notify()
 
 
 def Event(*args, **kwargs):