Index: applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Grabber.java
===================================================================
--- applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Grabber.java	(revision 22719)
+++ applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Grabber.java	(revision 22720)
@@ -70,9 +70,8 @@
 				attempt(request);
 			}
-			if (canceled) {
-				return;
+			if (request.getState() != null) {
+				layer.finishRequest(request);
+				mv.repaint();
 			}
-			layer.finishRequest(request);
-			mv.repaint();
 		}
 	}
Index: applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java
===================================================================
--- applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java	(revision 22719)
+++ applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java	(revision 22720)
@@ -412,4 +412,7 @@
 
 	public void finishRequest(WMSRequest request) {
+		if (request.getState() == null) {
+			throw new IllegalArgumentException("Finished request without state");
+		}
 		requestQueueLock.lock();
 		try {
@@ -445,6 +448,6 @@
 				}
 			}
+		} finally {
 			finishedRequests.clear();
-		} finally {
 			requestQueueLock.unlock();
 		}
