Code simplification suggested by Sven Marnach.
diff --git a/Lib/random.py b/Lib/random.py
index 987cff1..36b9565 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -427,11 +427,9 @@
         # lambd: rate lambd = 1/mean
         # ('lambda' is a Python reserved word)
 
-        random = self.random
-        u = random()
-        while u <= 1e-7:
-            u = random()
-        return -_log(u)/lambd
+        # we use 1-random() instead of random() to preclude the
+        # possibility of taking the log of zero.
+        return -_log(1.0 - self.random())/lambd
 
 ## -------------------- von Mises distribution --------------------