The first batch of changes recommended by the fixdiv tool.  These are
mostly changes of / operators into //.  Once or twice I did more or
less than recommended.
diff --git a/Lib/base64.py b/Lib/base64.py
index 44cd03a..3158fdc 100755
--- a/Lib/base64.py
+++ b/Lib/base64.py
@@ -9,7 +9,7 @@
 __all__ = ["encode","decode","encodestring","decodestring"]
 
 MAXLINESIZE = 76 # Excluding the CRLF
-MAXBINSIZE = (MAXLINESIZE/4)*3
+MAXBINSIZE = (MAXLINESIZE//4)*3
 
 def encode(input, output):
     """Encode a file."""
diff --git a/Lib/binhex.py b/Lib/binhex.py
index 686f8d9..5700659 100644
--- a/Lib/binhex.py
+++ b/Lib/binhex.py
@@ -128,7 +128,7 @@
     def write(self, data):
         self.data = self.data + data
         datalen = len(self.data)
-        todo = (datalen/3)*3
+        todo = (datalen//3)*3
         data = self.data[:todo]
         self.data = self.data[todo:]
         if not data:
@@ -292,7 +292,7 @@
         # much to decode: there may be newlines in the incoming data.
         while wtd > 0:
             if self.eof: return decdata
-            wtd = ((wtd+2)/3)*4
+            wtd = ((wtd+2)//3)*4
             data = self.ifp.read(wtd)
             #
             # Next problem: there may not be a complete number of
diff --git a/Lib/bisect.py b/Lib/bisect.py
index d311337..c9e6c60 100644
--- a/Lib/bisect.py
+++ b/Lib/bisect.py
@@ -12,7 +12,7 @@
     if hi is None:
         hi = len(a)
     while lo < hi:
-        mid = (lo+hi)/2
+        mid = (lo+hi)//2
         if x < a[mid]: hi = mid
         else: lo = mid+1
     a.insert(lo, x)
@@ -33,7 +33,7 @@
     if hi is None:
         hi = len(a)
     while lo < hi:
-        mid = (lo+hi)/2
+        mid = (lo+hi)//2
         if x < a[mid]: hi = mid
         else: lo = mid+1
     return lo
@@ -52,7 +52,7 @@
     if hi is None:
         hi = len(a)
     while lo < hi:
-        mid = (lo+hi)/2
+        mid = (lo+hi)//2
         if a[mid] < x: lo = mid+1
         else: hi = mid
     a.insert(lo, x)
@@ -72,7 +72,7 @@
     if hi is None:
         hi = len(a)
     while lo < hi:
-        mid = (lo+hi)/2
+        mid = (lo+hi)//2
         if a[mid] < x: lo = mid+1
         else: hi = mid
     return lo
diff --git a/Lib/dumbdbm.py b/Lib/dumbdbm.py
index e508349..287a8a0 100644
--- a/Lib/dumbdbm.py
+++ b/Lib/dumbdbm.py
@@ -87,7 +87,7 @@
 ## Does not work under MW compiler
 ##              pos = ((pos + _BLOCKSIZE - 1) / _BLOCKSIZE) * _BLOCKSIZE
 ##              f.seek(pos)
-        npos = ((pos + _BLOCKSIZE - 1) / _BLOCKSIZE) * _BLOCKSIZE
+        npos = ((pos + _BLOCKSIZE - 1) // _BLOCKSIZE) * _BLOCKSIZE
         f.write('\0'*(npos-pos))
         pos = npos
 
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 6183b0e..f57ba37 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -590,7 +590,7 @@
     filename = getsourcefile(frame)
     lineno = getlineno(frame)
     if context > 0:
-        start = lineno - 1 - context/2
+        start = lineno - 1 - context//2
         try:
             lines, lnum = findsource(frame)
         except IOError:
diff --git a/Lib/quopri.py b/Lib/quopri.py
index 575fcd1..f668abf 100755
--- a/Lib/quopri.py
+++ b/Lib/quopri.py
@@ -27,7 +27,7 @@
 def quote(c):
     """Quote a single character."""
     i = ord(c)
-    return ESCAPE + HEX[i/16] + HEX[i%16]
+    return ESCAPE + HEX[i//16] + HEX[i%16]
 
 
 
diff --git a/Lib/repr.py b/Lib/repr.py
index f418d1a..1b1f4f4 100644
--- a/Lib/repr.py
+++ b/Lib/repr.py
@@ -65,7 +65,7 @@
     def repr_str(self, x, level):
         s = `x[:self.maxstring]`
         if len(s) > self.maxstring:
-            i = max(0, (self.maxstring-3)/2)
+            i = max(0, (self.maxstring-3)//2)
             j = max(0, self.maxstring-3-i)
             s = `x[:i] + x[len(x)-j:]`
             s = s[:i] + '...' + s[len(s)-j:]
@@ -73,7 +73,7 @@
     def repr_long(self, x, level):
         s = `x` # XXX Hope this isn't too slow...
         if len(s) > self.maxlong:
-            i = max(0, (self.maxlong-3)/2)
+            i = max(0, (self.maxlong-3)//2)
             j = max(0, self.maxlong-3-i)
             s = s[:i] + '...' + s[len(s)-j:]
         return s
@@ -86,7 +86,7 @@
             return '<' + x.__class__.__name__ + ' instance at ' + \
                       hex(id(x))[2:] + '>'
         if len(s) > self.maxstring:
-            i = max(0, (self.maxstring-3)/2)
+            i = max(0, (self.maxstring-3)//2)
             j = max(0, self.maxstring-3-i)
             s = s[:i] + '...' + s[len(s)-j:]
         return s
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index b3f7fb2..430e637 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -927,7 +927,7 @@
             tzoffset = -tzoffset
         else:
             tzsign = 1
-        tzoffset = tzsign * ( (tzoffset/100)*3600 + (tzoffset % 100)*60)
+        tzoffset = tzsign * ( (tzoffset//100)*3600 + (tzoffset % 100)*60)
     tuple = (yy, mm, dd, thh, tmm, tss, 0, 0, 0, tzoffset)
     return tuple
 
diff --git a/Lib/test/test_audioop.py b/Lib/test/test_audioop.py
index 495a918..a4e1914 100644
--- a/Lib/test/test_audioop.py
+++ b/Lib/test/test_audioop.py
@@ -116,8 +116,8 @@
     # too simple: we test only the size
     for d1 in data:
         for d2 in data:
-            got = len(d1)/3
-            wtd = len(d2)/3
+            got = len(d1)//3
+            wtd = len(d2)//3
             if len(audioop.lin2lin(d1, got, wtd)) != len(d2):
                 return 0
     return 1
diff --git a/Lib/test/test_augassign.py b/Lib/test/test_augassign.py
index e9e5b23..c372b9a 100644
--- a/Lib/test/test_augassign.py
+++ b/Lib/test/test_augassign.py
@@ -5,7 +5,7 @@
 x *= 2
 x **= 2
 x -= 8
-x /= 2
+x //= 2
 x //= 1
 x %= 12
 x &= 2
@@ -19,7 +19,7 @@
 x[0] *= 2
 x[0] **= 2
 x[0] -= 8
-x[0] /= 2
+x[0] //= 2
 x[0] //= 2
 x[0] %= 12
 x[0] &= 2
@@ -33,7 +33,7 @@
 x[0] *= 2
 x[0] **= 2
 x[0] -= 8
-x[0] /= 2
+x[0] //= 2
 x[0] //= 1
 x[0] %= 12
 x[0] &= 2
diff --git a/Lib/test/test_b1.py b/Lib/test/test_b1.py
index 46a6da0..978f674 100644
--- a/Lib/test/test_b1.py
+++ b/Lib/test/test_b1.py
@@ -413,7 +413,7 @@
 # Worked by accident in Windows release build, but failed in debug build.
 # Failed in all Linux builds.
 x = -1-sys.maxint
-if x >> 1 != x/2:
+if x >> 1 != x//2:
     raise TestFailed("x >> 1 != x/2 when x == -1-sys.maxint")
 
 print 'isinstance'
diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py
index f03fc55..cc78ee3 100755
--- a/Lib/test/test_binascii.py
+++ b/Lib/test/test_binascii.py
@@ -54,10 +54,10 @@
         fillers = fillers + c
 def addnoise(line):
     noise = fillers
-    ratio = len(line) / len(noise)
+    ratio = len(line) // len(noise)
     res = ""
     while line and noise:
-        if len(line) / len(noise) > ratio:
+        if len(line) // len(noise) > ratio:
             c, line = line[0], line[1:]
         else:
             c, noise = noise[0], noise[1:]
diff --git a/Lib/test/test_binop.py b/Lib/test/test_binop.py
index f1e654a..7eded9a 100644
--- a/Lib/test/test_binop.py
+++ b/Lib/test/test_binop.py
@@ -42,8 +42,8 @@
         if den == 0:
             raise ZeroDivisionError, "zero denominator"
         g = gcd(den, num)
-        self.__num = long(num/g)
-        self.__den = long(den/g)
+        self.__num = long(num//g)
+        self.__den = long(den//g)
 
     def _get_num(self):
         """Accessor function for read-only 'num' attribute of Rat."""
diff --git a/Lib/test/test_compare.py b/Lib/test/test_compare.py
index bc833ea..8100aec 100644
--- a/Lib/test/test_compare.py
+++ b/Lib/test/test_compare.py
@@ -47,7 +47,7 @@
     # Ensure default comparison compares id() of args
     L = []
     for i in range(10):
-        L.insert(len(L)/2, Empty())
+        L.insert(len(L)//2, Empty())
     for a in L:
         for b in L:
             if cmp(a, b) != cmp(id(a), id(b)):
diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py
index e123638..01d567a 100644
--- a/Lib/test/test_long.py
+++ b/Lib/test/test_long.py
@@ -76,7 +76,7 @@
 
 def test_division_2(x, y):
     q, r = divmod(x, y)
-    q2, r2 = x/y, x%y
+    q2, r2 = x//y, x%y
     pab, pba = x*y, y*x
     check(pab == pba, "multiplication does not commute for", x, y)
     check(q == q2, "divmod returns different quotient than / for", x, y)
@@ -117,7 +117,7 @@
     for n in range(2*SHIFT):
         p2 = 2L ** n
         check(x << n >> n == x, "x << n >> n != x for", x, n)
-        check(x / p2 == x >> n, "x / p2 != x >> n for x n p2", x, n, p2)
+        check(x // p2 == x >> n, "x // p2 != x >> n for x n p2", x, n, p2)
         check(x * p2 == x << n, "x * p2 != x << n for x n p2", x, n, p2)
         check(x & -p2 == x >> n << n == x & ~(p2 - 1),
             "not x & -p2 == x >> n << n == x & ~(p2 - 1) for x n p2",
@@ -161,7 +161,7 @@
         for leny in digits:
             y = getran(leny)
             test_bitop_identities_2(x, y)
-            test_bitop_identities_3(x, y, getran((lenx + leny)/2))
+            test_bitop_identities_3(x, y, getran((lenx + leny)//2))
 
 # ------------------------------------------------- hex oct repr str atol
 
@@ -296,8 +296,8 @@
             checkit(x, '*', y)
 
             if y:
-                expected = longx / longy
-                got = x / y
+                expected = longx // longy
+                got = x // y
                 checkit(x, '/', y)
 
                 expected = longx // longy
diff --git a/Lib/test/test_operator.py b/Lib/test/test_operator.py
index 939c995..6312d9a 100644
--- a/Lib/test/test_operator.py
+++ b/Lib/test/test_operator.py
@@ -82,7 +82,7 @@
         self.assert_(a == [0, 1, 8, 9])
 
     def test_div(self):
-        self.failUnless(operator.div(5, 2) == 2)
+        self.failUnless(operator.floordiv(5, 2) == 2)
 
     def test_floordiv(self):
         self.failUnless(operator.floordiv(5, 2) == 2)
diff --git a/Lib/test/test_pty.py b/Lib/test/test_pty.py
index b119f62..7d72b76 100644
--- a/Lib/test/test_pty.py
+++ b/Lib/test/test_pty.py
@@ -86,7 +86,7 @@
 else:
     debug("Waiting for child (%d) to finish."%pid)
     (pid, status) = os.waitpid(pid, 0)
-    res = status / 256
+    res = status >> 8
     debug("Child (%d) exited with status %d (%d)."%(pid, res, status))
     if res == 1:
         raise TestFailed, "Child raised an unexpected exception in os.setsid()"
diff --git a/Lib/test/test_strftime.py b/Lib/test/test_strftime.py
index 47f35f5..4ce72b9 100755
--- a/Lib/test/test_strftime.py
+++ b/Lib/test/test_strftime.py
@@ -64,10 +64,10 @@
         ('%M', '%02d' % now[4], 'minute, (00-59)'),
         ('%p', ampm, 'AM or PM as appropriate'),
         ('%S', '%02d' % now[5], 'seconds of current time (00-60)'),
-        ('%U', '%02d' % ((now[7] + jan1[6])/7),
+        ('%U', '%02d' % ((now[7] + jan1[6])//7),
          'week number of the year (Sun 1st)'),
         ('%w', '0?%d' % ((1+now[6]) % 7), 'weekday as a number (Sun 1st)'),
-        ('%W', '%02d' % ((now[7] + (jan1[6] - 1)%7)/7),
+        ('%W', '%02d' % ((now[7] + (jan1[6] - 1)%7)//7),
          'week number of the year (Mon 1st)'),
         # %x see below
         ('%X', '%02d:%02d:%02d' % (now[3], now[4], now[5]), '%H:%M:%S'),
diff --git a/Lib/wave.py b/Lib/wave.py
index b5f0e1c..d41a9bd 100644
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -146,7 +146,7 @@
                 if not self._fmt_chunk_read:
                     raise Error, 'data chunk before fmt chunk'
                 self._data_chunk = chunk
-                self._nframes = chunk.chunksize / self._framesize
+                self._nframes = chunk.chunksize // self._framesize
                 self._data_seek_needed = 0
                 break
             chunk.skip()
@@ -248,7 +248,7 @@
             data = self._data_chunk.read(nframes * self._framesize)
         if self._convert and data:
             data = self._convert(data)
-        self._soundpos = self._soundpos + len(data) / (self._nchannels * self._sampwidth)
+        self._soundpos = self._soundpos + len(data) // (self._nchannels * self._sampwidth)
         return data
 
     #
@@ -259,7 +259,7 @@
         wFormatTag, self._nchannels, self._framerate, dwAvgBytesPerSec, wBlockAlign = struct.unpack('<hhllh', chunk.read(14))
         if wFormatTag == WAVE_FORMAT_PCM:
             sampwidth = struct.unpack('<h', chunk.read(2))[0]
-            self._sampwidth = (sampwidth + 7) / 8
+            self._sampwidth = (sampwidth + 7) // 8
         else:
             raise Error, 'unknown format: ' + `wFormatTag`
         self._framesize = self._nchannels * self._sampwidth
@@ -403,7 +403,7 @@
 
     def writeframesraw(self, data):
         self._ensure_header_written(len(data))
-        nframes = len(data) / (self._sampwidth * self._nchannels)
+        nframes = len(data) // (self._sampwidth * self._nchannels)
         if self._convert:
             data = self._convert(data)
         if self._sampwidth > 1 and big_endian: