diff --git a/Lib/atexit.py b/Lib/atexit.py
new file mode 100644
index 0000000..a311630
--- /dev/null
+++ b/Lib/atexit.py
@@ -0,0 +1,54 @@
+"""
+atexit.py - allow programmer to define multiple exit functions to be executed
+upon normal program termination.
+
+One public function, register, is defined.  
+"""
+
+_exithandlers = []
+def _run_exitfuncs():
+    """run any registered exit functions
+
+    _exithandlers is traversed in reverse order so functions are executed
+    last in, first out.
+    """
+    
+    while _exithandlers:
+        func, targs, kargs = _exithandlers[-1]
+        apply(func, targs, kargs)
+        _exithandlers.remove(_exithandlers[-1])
+
+def register(func, *targs, **kargs):
+    """register a function to be executed upon normal program termination
+
+    func - function to be called at exit
+    targs - optional arguments to pass to func
+    kargs - optional keyword arguments to pass to func
+    """
+    _exithandlers.append((func, targs, kargs))
+
+import sys
+try:
+    x = sys.exitfunc
+except AttributeError:
+    sys.exitfunc = _run_exitfuncs
+else:
+    # if x isn't our own exit func executive, assume it's another
+    # registered exit function - append it to our list...
+    if x != _run_exitfuncs:
+        register(x)
+del sys
+
+if __name__ == "__main__":
+    def x1():
+        print "running x1"
+    def x2(n):
+        print "running x2(%s)" % `n`
+    def x3(n, kwd=None):
+        print "running x3(%s, kwd=%s)" % (`n`, `kwd`)
+
+    register(x1)
+    register(x2, 12)
+    register(x3, 5, "bar")
+    register(x3, "no kwd args")
+
diff --git a/Lib/test/output/test_atexit b/Lib/test/output/test_atexit
new file mode 100644
index 0000000..1cc01de
--- /dev/null
+++ b/Lib/test/output/test_atexit
@@ -0,0 +1,4 @@
+test_atexit
+handler2 (7,) {'kw': 'abc'}
+handler2 () {}
+handler1
diff --git a/Lib/test/test_atexit.py b/Lib/test/test_atexit.py
new file mode 100644
index 0000000..517610b
--- /dev/null
+++ b/Lib/test/test_atexit.py
@@ -0,0 +1,24 @@
+# Test the exit module
+from test_support import verbose
+import atexit
+
+def handler1():
+    print "handler1"
+
+def handler2(*args, **kargs):
+    print "handler2", args, kargs
+
+# save any exit functions that may have been registered as part of the
+# test framework
+_exithandlers = atexit._exithandlers
+atexit._exithandlers = []
+
+atexit.register(handler1)
+atexit.register(handler2)
+atexit.register(handler2, 7, kw="abc")
+
+# simulate exit behavior by calling atexit._run_exitfuncs directly...
+atexit._run_exitfuncs()
+
+# restore exit handlers
+atexit._exithandlers = _exithandlers
