Index: /trunk/autoquest-httpmonitor/src/main/java/de/ugoe/cs/autoquest/httpmonitor/proxy/ExchangeListenerManager.java
===================================================================
--- /trunk/autoquest-httpmonitor/src/main/java/de/ugoe/cs/autoquest/httpmonitor/proxy/ExchangeListenerManager.java	(revision 2245)
+++ /trunk/autoquest-httpmonitor/src/main/java/de/ugoe/cs/autoquest/httpmonitor/proxy/ExchangeListenerManager.java	(revision 2246)
@@ -213,5 +213,7 @@
         ensureListener(request).onFinish(status);
         Console.traceln(Level.FINEST, "removing exchange listener for " + request);
-        listeners.remove(request);
+        synchronized (this) {
+            listeners.remove(request);
+        }
     }
 
@@ -222,18 +224,15 @@
      */
     private ExchangeListener ensureListener(HttpServletRequest request) {
-        ExchangeListener listener = listeners.get(request);
-        
-        if (listener == null) {
-            synchronized (this) {
-                listener = listeners.get(request);
-                if (listener == null) {
-                    Console.traceln(Level.FINEST, "creating exchange listener for " + request);
-                    listener = new ExchangeListener(exchangeHandler, idGenerator); 
-                    listeners.put(request, listener);
-                }
+        synchronized (this) {
+            ExchangeListener listener = listeners.get(request);
+        
+            if (listener == null) {
+                Console.traceln(Level.FINEST, "creating exchange listener for " + request);
+                listener = new ExchangeListener(exchangeHandler, idGenerator); 
+                listeners.put(request, listener);
             }
-        }
-
-        return listener;
+
+            return listener;
+        }
     }
 
