Index: /applications/editors/josm/plugins/reverter/build.xml
===================================================================
--- /applications/editors/josm/plugins/reverter/build.xml	(revision 36318)
+++ /applications/editors/josm/plugins/reverter/build.xml	(revision 36319)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="Reverter: fix deleted/redacted relation members"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="18723"/>
+    <property name="plugin.main.version" value="19044"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: /applications/editors/josm/plugins/reverter/pom.xml
===================================================================
--- /applications/editors/josm/plugins/reverter/pom.xml	(revision 36318)
+++ /applications/editors/josm/plugins/reverter/pom.xml	(revision 36319)
@@ -17,5 +17,5 @@
     <properties>
         <plugin.src.dir>src</plugin.src.dir>
-        <plugin.main.version>18723</plugin.main.version>
+        <plugin.main.version>19044</plugin.main.version>
         <plugin.author>Upliner</plugin.author>
         <plugin.class>reverter.ReverterPlugin</plugin.class>
Index: /applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetHandler.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetHandler.java	(revision 36318)
+++ /applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetHandler.java	(revision 36319)
@@ -7,20 +7,26 @@
 import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
 import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler;
+import org.openstreetmap.josm.tools.Logging;
 
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * The handler for {@link org.openstreetmap.josm.io.remotecontrol.RemoteControl} revert commands
+ */
 public class RevertChangesetHandler extends RequestHandler {
-    public static final String command = "revert_changeset";
-    public static final String permissionKey = "remotecontrol.permission.revert_changeset";
-    public static final boolean permissionDefault = true;
+    public static final String COMMAND = "revert_changeset";
+    private static final String PERMISSION_KEY = "remotecontrol.permission.revert_changeset";
+    private static final boolean PERMISSION_DEFAULT = true;
 
-    private int changesetId;
+    private final List<Integer> changesetIds = new ArrayList<>();
 
     @Override
-    protected void handleRequest() throws RequestHandlerErrorException,
-            RequestHandlerBadRequestException {
+    protected void handleRequest() throws RequestHandlerErrorException {
         try {
-            MainApplication.worker.submit(new RevertChangesetTask(changesetId, ChangesetReverter.RevertType.FULL, true));
+            MainApplication.worker.submit(new RevertChangesetTask(changesetIds, ChangesetReverter.RevertType.FULL, true, false));
         } catch (Exception ex) {
-            System.out.println("RemoteControl: Error parsing revert_changeset remote control request:");
-            ex.printStackTrace();
+            Logging.debug("RemoteControl: Error parsing revert_changeset remote control request:");
+            Logging.debug(ex);
             throw new RequestHandlerErrorException(ex);
         }
@@ -34,5 +40,5 @@
     @Override
     public PermissionPrefWithDefault getPermissionPref() {
-        return null;
+        return new PermissionPrefWithDefault(PERMISSION_KEY, PERMISSION_DEFAULT, tr("Revert changeset(s)"));
     }
 
@@ -44,8 +50,14 @@
     @Override
     protected void validateRequest() throws RequestHandlerBadRequestException {
-        try {
-            changesetId = Integer.parseInt(args.get("id"));
-        } catch (NumberFormatException e) {
-            throw new RequestHandlerBadRequestException("NumberFormatException: "+e.getMessage());
+        if (args.get("id") != null) {
+            try {
+                for (String id : args.get("id").split(",", -1)) {
+                    changesetIds.add(Integer.parseInt(id));
+                }
+            } catch (NumberFormatException e) {
+                throw new RequestHandlerBadRequestException("NumberFormatException: " + e.getMessage());
+            }
+        } else {
+            throw new RequestHandlerBadRequestException("The required id argument must be specified");
         }
     }
Index: /applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java	(revision 36318)
+++ /applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java	(revision 36319)
@@ -28,5 +28,5 @@
         MainMenu.add(historyMenu, new RevertChangesetAction());
         UploadAction.registerUploadHook(new ReverterUploadHook(info));
-        new RemoteControl().addRequestHandler(RevertChangesetHandler.command, RevertChangesetHandler.class);
+        new RemoteControl().addRequestHandler(RevertChangesetHandler.COMMAND, RevertChangesetHandler.class);
     }
 }
