diff --git a/Misc/NEWS b/Misc/NEWS
index 8f24d85..ebda27d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -52,6 +52,12 @@
 Tools/Demos
 -----------
 
+- md5sum.py mistakenly opened input files in text mode by default, a
+  silent and dangerous change from previous releases.  It once again
+  opens input files in binary mode by default.  The -t and -b flags
+  remain for compatibility with the 2.3 release, but -b is the default
+  now.
+
 - py-electric-colon now works when pending-delete/delete-selection mode is
   in effect
 
diff --git a/Tools/scripts/md5sum.py b/Tools/scripts/md5sum.py
index 0711db8..e045f1a 100644
--- a/Tools/scripts/md5sum.py
+++ b/Tools/scripts/md5sum.py
@@ -6,12 +6,12 @@
 
 bufsize = 8096
 fnfilter = None
-rmode = 'r'
+rmode = 'rb'
 
 usage = """
 usage: sum5 [-b] [-t] [-l] [-s bufsize] [file ...]
--b        : read files in binary mode
--t        : read files in text mode (default)
+-b        : read files in binary mode (default)
+-t        : read files in text mode (you almost certainly don't want this!)
 -l        : print last pathname component only
 -s bufsize: read buffer size (default %d)
 file ...  : files to sum; '-' or no files means stdin
@@ -40,7 +40,7 @@
             sts = sum(f, out) or sts
     return sts
 
-def printsum(filename, out = sys.stdout):
+def printsum(filename, out=sys.stdout):
     try:
         fp = open(filename, rmode)
     except IOError, msg:
@@ -52,12 +52,13 @@
     fp.close()
     return sts
 
-def printsumfp(fp, filename, out = sys.stdout):
+def printsumfp(fp, filename, out=sys.stdout):
     m = md5.new()
     try:
         while 1:
             data = fp.read(bufsize)
-            if not data: break
+            if not data:
+                break
             m.update(data)
     except IOError, msg:
         sys.stderr.write('%s: I/O error: %s\n' % (filename, msg))
@@ -65,7 +66,7 @@
     out.write('%s %s\n' % (m.hexdigest(), filename))
     return 0
 
-def main(args = sys.argv[1:], out = sys.stdout):
+def main(args = sys.argv[1:], out=sys.stdout):
     global fnfilter, rmode, bufsize
     try:
         opts, args = getopt.getopt(args, 'blts:')
@@ -75,11 +76,11 @@
     for o, a in opts:
         if o == '-l':
             fnfilter = os.path.basename
-        if o == '-b':
+        elif o == '-b':
             rmode = 'rb'
-        if o == '-t':
+        elif o == '-t':
             rmode = 'r'
-        if o == '-s':
+        elif o == '-s':
             bufsize = int(a)
     if not args:
         args = ['-']
