diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index f5481d7..6a74728 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -1361,7 +1361,7 @@
         zone = -time.altzone
     else:
         zone = -time.timezone
-    return '"' + dt + " %+03d%02d" % divmod(zone/60, 60) + '"'
+    return '"' + dt + " %+03d%02d" % divmod(zone//60, 60) + '"'
 
 
 
diff --git a/Lib/random.py b/Lib/random.py
index f355eac..0a02787 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -197,9 +197,9 @@
         if istep != step:
             raise ValueError, "non-integer step for randrange()"
         if istep > 0:
-            n = (width + istep - 1) / istep
+            n = (width + istep - 1) // istep
         elif istep < 0:
-            n = (width + istep + 1) / istep
+            n = (width + istep + 1) // istep
         else:
             raise ValueError, "zero step for randrange()"
 
diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py
index de775dc..c0024ac 100644
--- a/Lib/test/test_deque.py
+++ b/Lib/test/test_deque.py
@@ -385,7 +385,7 @@
     def __iter__(self):
         return self
     def next(self):
-        3/0
+        3 // 0
 
 class S:
     'Test immediate stop'
diff --git a/Lib/test/test_enumerate.py b/Lib/test/test_enumerate.py
index 200779f..18c2bb9 100644
--- a/Lib/test/test_enumerate.py
+++ b/Lib/test/test_enumerate.py
@@ -50,7 +50,7 @@
     def __iter__(self):
         return self
     def next(self):
-        3/0
+        3 // 0
 
 class N:
     'Iterator missing next()'
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py
index 6ce758a..6ae6785 100644
--- a/Lib/test/test_itertools.py
+++ b/Lib/test/test_itertools.py
@@ -476,7 +476,7 @@
     def __iter__(self):
         return self
     def next(self):
-        3/0
+        3 // 0
 
 class S:
     'Test immediate stop'
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index b8d0b5d..9c2e0d0 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -79,7 +79,7 @@
         def factorial(n):
             return reduce(int.__mul__, xrange(1, n), 1)
         for k in xrange(n):
-            expected = factorial(n) / factorial(n-k)
+            expected = factorial(n) // factorial(n-k)
             perms = {}
             for i in xrange(trials):
                 perms[tuple(self.gen.sample(pop, k))] = None
diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index a4cbfc5..01dded6 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -1241,7 +1241,7 @@
     def __iter__(self):
         return self
     def next(self):
-        3/0
+        3 // 0
 
 class S:
     'Test immediate stop'
