Duh.  The do_EOF() implementation was bogus.  Make it more like
do_quit() -- but print a blank line first.
diff --git a/Lib/pdb.py b/Lib/pdb.py
index fffd0ad..1a57c85 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -193,9 +193,6 @@
 
     do_h = cmd.Cmd.do_help
 
-    def do_EOF(self, arg):
-        return 0        # Don't die on EOF
-
     def do_break(self, arg, temporary = 0):
         # break [ ([filename:]lineno | function) [, "condition"] ]
         if not arg:
@@ -531,6 +528,11 @@
     do_q = do_quit
     do_exit = do_quit
 
+    def do_EOF(self, arg):
+        print
+        self.set_quit()
+        return 1
+
     def do_args(self, arg):
         f = self.curframe
         co = f.f_code