diff --git a/Tools/scripts/ndiff.py b/Tools/scripts/ndiff.py
index 2323dd8..dd06d21 100755
--- a/Tools/scripts/ndiff.py
+++ b/Tools/scripts/ndiff.py
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 
-# Module ndiff version 1.4.0
-# Released to the public domain 27-Mar-1999,
+# Module ndiff version 1.5.0
+# Released to the public domain 08-Oct-2000,
 # by Tim Peters (tim_one@email.msn.com).
 
 # Provided as-is; use at your own risk; no warranty; no promises; enjoy!
@@ -28,14 +28,14 @@
     "? "    line not present in either input file
 
 Lines beginning with "? " attempt to guide the eye to intraline
-differences, and were not present in either input file.  These lines can
-be confusing if the source files contain tab characters.
+differences, and were not present in either input file.  These lines can be
+confusing if the source files contain tab characters.
 
 The first file can be recovered by retaining only lines that begin with
 "  " or "- ", and deleting those 2-character prefixes; use ndiff with -r1.
 
-The second file can be recovered similarly, but by retaining only "  "
-and "+ " lines; use ndiff with -r2; or, on Unix, the second file can be
+The second file can be recovered similarly, but by retaining only "  " and
+"+ " lines; use ndiff with -r2; or, on Unix, the second file can be
 recovered by piping the output through
 
     sed -n '/^[+ ] /s/^..//p'
@@ -43,7 +43,7 @@
 See module comments for details and programmatic interface.
 """
 
-__version__ = 1, 4, 0
+__version__ = 1, 5, 0
 
 # SequenceMatcher tries to compute a "human-friendly diff" between
 # two sequences (chiefly picturing a file as a sequence of lines,
@@ -514,8 +514,7 @@
         elif lb < la:
             btags = btags + ' ' * (la - lb)
         combined = map(lambda x,y: _combine[x+y], atags, btags)
-        print '-', aelt, '+', belt, '?', \
-              string.rstrip(string.join(combined, ''))
+        printq(aelt, belt, string.rstrip(string.join(combined, '')))
     else:
         # the synch pair is identical
         print ' ', aelt,
@@ -532,6 +531,22 @@
     elif blo < bhi:
         dump('+', b, blo, bhi)
 
+# Crap to deal with leading tabs in "?" output.  Can hurt, but will
+# probably help most of the time.
+
+def printq(aline, bline, qline):
+    common = min(count_leading(aline, "\t"),
+                 count_leading(bline, "\t"))
+    common = min(common, count_leading(qline[:common], " "))
+    qline = "\t" * common + qline[common:]
+    print '-', aline, '+', bline, '?', qline
+
+def count_leading(line, ch):
+    i, n = 0, len(line)
+    while i < n and line[i] == ch:
+        i += 1
+    return i
+
 def fail(msg):
     import sys
     out = sys.stderr.write
