Index: trac/web/main.py
===================================================================
--- trac/web/main.py	(revision 6489)
+++ trac/web/main.py	(working copy)
@@ -390,6 +390,16 @@
     finally:
         if env and not run_once:
             env.shutdown(threading._get_ident())
+            # Now it's a good time to do some clean-ups
+            import gc
+            gc.disable()
+            gc.set_debug(gc.DEBUG_UNCOLLECTABLE)
+            unreachable = gc.collect()
+            env.log.info("%d unreachable objects found.", unreachable)
+            uncollectable = len(gc.garbage)
+            if uncollectable:
+                del gc.garbage[:]
+                env.log.warn("%d uncollectable objects found.", uncollectable)
 
 def _dispatch_request(req, env, env_error):
     resp = []

