Don't catch interrupts in getpass() -- the finally clause will reset
the tty and the caller can deal with the interrupt.

In the windows version, recognize ^C and raise KeyboardInterrupt (not
sure if this is needed, but can't hurt).
diff --git a/Lib/getpass.py b/Lib/getpass.py
index 8bd7523..d67240e 100644
--- a/Lib/getpass.py
+++ b/Lib/getpass.py
@@ -36,8 +36,7 @@
 	new[3] = new[3] & ~TERMIOS.ECHO	# 3 == 'lflags'
 	try:
 		termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)
-		try: passwd = raw_input(prompt)
-		except KeyboardInterrupt: passwd = None
+		passwd = raw_input(prompt)
 	finally:
 		termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old)
 
@@ -55,6 +54,8 @@
 		c = msvcrt.getch()
 		if c == '\r' or c == '\n':
 			break
+		if c == '\003':
+			raise KeyboardInterrupt
 		if c == '\b':
 			pw = pw[:-1]
 		else: