diff --git a/Lib/curses/wrapper.py b/Lib/curses/wrapper.py
index b8905fb..0d004e0 100644
--- a/Lib/curses/wrapper.py
+++ b/Lib/curses/wrapper.py
@@ -9,7 +9,7 @@
 
 import sys, curses
 
-def wrapper(func, *rest):
+def wrapper(func, *args, **kwds):
     """Wrapper function that initializes curses and calls another function,
     restoring normal keyboard/screen behavior on error.
     The callable object 'func' is then passed the main window 'stdscr'
@@ -41,23 +41,10 @@
         except:
             pass
 
-        res = func(stdscr, *rest)
-    except:
-        # In the event of an error, restore the terminal
-        # to a sane state.
-        stdscr.keypad(0)
-        curses.echo()
-        curses.nocbreak()
-        curses.endwin()
-
-        # Pass the exception upwards
-        (exc_type, exc_value, exc_traceback) = sys.exc_info()
-        raise exc_type, exc_value, exc_traceback
-    else:
+        return func(stdscr, *rest)
+    finally:
         # Set everything back to normal
         stdscr.keypad(0)
         curses.echo()
         curses.nocbreak()
-        curses.endwin()          # Terminate curses
-
-        return res
+        curses.endwin()
