Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java	(revision 5007)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java	(revision 5008)
@@ -21,5 +21,5 @@
  */
 public abstract class RequestHandler {
-    
+
     public static final String globalConfirmationKey = "remotecontrol.always-confirm";
     public static final boolean globalConfirmationDefault = false;
@@ -155,14 +155,17 @@
      */
     protected void parseArgs() {
-        StringTokenizer st = new StringTokenizer(this.request, "&?");
         HashMap<String, String> args = new HashMap<String, String>();
-        // ignore first token which is the command
-        if(st.hasMoreTokens()) st.nextToken();
-        while (st.hasMoreTokens()) {
-            String param = st.nextToken();
-            int eq = param.indexOf("=");
-            if (eq > -1)
-                args.put(param.substring(0, eq),
-                         param.substring(eq + 1));
+        if (this.request.indexOf('?') != -1) {
+            String query = this.request.substring(this.request.indexOf('?') + 1);
+            if (query.indexOf('#') != -1) {
+                query = query.substring(0, query.indexOf('#'));
+            }
+            String[] params = query.split("&", -1);
+            for (String param : params) {
+                int eq = param.indexOf('=');
+                if (eq != -1) {
+                    args.put(param.substring(0, eq), param.substring(eq + 1));
+                }
+            }
         }
         this.args = args;
@@ -237,5 +240,5 @@
         }
     }
-    
+
     public static class RequestHandlerForbiddenException extends RequestHandlerException {
         private static final long serialVersionUID = 2263904699747115423L;
