diff --git a/cherrypy/_cputil.py b/cherrypy/_cputil.py
index <HASH>..<HASH> 100644
--- a/cherrypy/_cputil.py
+++ b/cherrypy/_cputil.py
@@ -323,11 +323,14 @@ def formatExc(exc=None):
     
     if exc == (None, None, None):
         return ""
-    if hasattr(exc[1], "args"):
-        page_handler_str = ""
-        if len(exc[1].args) > 1:
-            page_handler = exc[1].args.pop()
+    
+    page_handler_str = ""
+    args = list(getattr(exc[1], "args", []))
+    if args:
+        if len(args) > 1:
+            page_handler = args.pop()
             page_handler_str = 'Page handler: %s\n' % repr(page_handler)
+            exc[1].args = tuple(args)
     return page_handler_str + "".join(traceback.format_exception(*exc))
 
 def bareError(extrabody=None):
Fix for the fix for #<I> (hey, that rhymes!).