Revert r81012.  buildbot problems and its questionable of me to even
add this to trunk while we're on the way to 2.7rc1.

When fixed this can go into py3k first.  Sorry.
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 1cd6706..0751c17 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -13,7 +13,6 @@
 import re
 import pprint
 import traceback
-import signal
 
 
 class Restart(Exception):
@@ -73,8 +72,6 @@
             import readline
         except ImportError:
             pass
-        self.allow_kbdint = False
-        signal.signal(signal.SIGINT, self.sigint_handler)
 
         # Read $HOME/.pdbrc and ./.pdbrc
         self.rcLines = []
@@ -107,13 +104,6 @@
         self.commands_bnum = None # The breakpoint number for which we are
                                   # defining a list
 
-    def sigint_handler(self, signum, frame):
-        if self.allow_kbdint:
-            raise KeyboardInterrupt()
-        print >>self.stdout, "\nProgram interrupted. (Use 'cont' to resume)."
-        self.set_step()
-        self.set_trace(frame)
-
     def reset(self):
         bdb.Bdb.reset(self)
         self.forget()
@@ -186,7 +176,7 @@
             if not self.commands_silent[currentbp]:
                 self.print_stack_entry(self.stack[self.curindex])
             if self.commands_doprompt[currentbp]:
-                self._cmdloop()
+                self.cmdloop()
             self.forget()
             return
         return 1
@@ -209,22 +199,11 @@
         self.interaction(frame, exc_traceback)
 
     # General interaction function
-    def _cmdloop(self):
-        while 1:
-            try:
-                # keyboard interrupts allow for an easy way to interrupt
-                # the current command
-                self.allow_kbdint = True
-                self.cmdloop()
-                self.allow_kbdint = False
-                break
-            except KeyboardInterrupt:
-                print >>self.stdout, '--KeyboardInterrupt--'
 
     def interaction(self, frame, traceback):
         self.setup(frame, traceback)
         self.print_stack_entry(self.stack[self.curindex])
-        self._cmdloop()
+        self.cmdloop()
         self.forget()
 
     def displayhook(self, obj):
@@ -350,22 +329,9 @@
         prompt_back = self.prompt
         self.prompt = '(com) '
         self.commands_defining = True
-        try:
-            self.cmdloop()
-        except (KeyboardInterrupt, IOError):
-            # It appears that that when pdb is reading input from a pipe
-            # we may get IOErrors, rather than KeyboardInterrupt.
-            # Now discard all the commands entered so far (essentially undo
-            # any effect of this "commands"  cmd)
-            self.commands.pop(bnum)
-            self.commands_doprompt.pop(bnum)
-            self.commands_silent.pop(bnum)
-            # this will get caught by the _cmdloop and pdb will reenter
-            # the main command loop
-            raise KeyboardInterrupt()
-        finally:
-            self.commands_defining = False
-            self.prompt = prompt_back
+        self.cmdloop()
+        self.commands_defining = False
+        self.prompt = prompt_back
 
     def do_break(self, arg, temporary = 0):
         # break [ ([filename:]lineno | function) [, "condition"] ]