             _listeners = [ ];
 
         } else if (_listeners.indexOf(listener) != -1) {
-            log.warning("Refusing repeat listener registration " +
-                "[dobj=" + which() + ", list=" + listener + "].");
-            log.logStackTrace(new Error());
+            log.warning("Refusing repeat listener registration",
+                "dobj", which(), "list", listener, new Error());
             return;
         }
         _listeners.push(listener);

                    (listener as EventListener).eventReceived(event);
                }
            } catch (e :Error) {
                log.warning("Listener choked during notification " +
                    "[list=" + listener + ", event=" + event + "].");
                log.logStackTrace(e);
            }
        }
    }

    {
        // sanity check
        if (_tcount != 0) {
            log.warning("Transaction cleared with non-zero nesting count", "dobj", this);
            _tcount = 0;
        }

