Index: applications/editors/josm/plugins/reverter/build.xml
===================================================================
--- applications/editors/josm/plugins/reverter/build.xml	(revision 24882)
+++ applications/editors/josm/plugins/reverter/build.xml	(revision 24887)
@@ -33,5 +33,5 @@
 	<property name="commit.message" value="fix bug with handling for incomplete relation members" />
 	<!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-	<property name="plugin.main.version" value="3403" />
+	<property name="plugin.main.version" value="3746" />
 
 
Index: applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetCommand.java
===================================================================
--- applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetCommand.java	(revision 24882)
+++ applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetCommand.java	(revision 24887)
@@ -15,4 +15,5 @@
         super(name, sequenz);
         this.name = name;
+        ReverterPlugin.reverterUsed = true;
     }
 
Index: applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java
===================================================================
--- applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java	(revision 24882)
+++ applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java	(revision 24887)
@@ -9,4 +9,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.UploadAction;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -14,4 +15,5 @@
 
 public class ReverterPlugin extends Plugin {
+    static boolean reverterUsed = false;
     public ReverterPlugin(PluginInformation info) {
         super(info);
@@ -20,4 +22,5 @@
         //MainMenu.add(historyMenu, new ObjectsHistoryAction());
         MainMenu.add(historyMenu, new RevertChangesetAction());
+        UploadAction.registerUploadHook(new ReverterUploadHook(this));
     }
 }
Index: applications/editors/josm/plugins/reverter/src/reverter/ReverterUploadHook.java
===================================================================
--- applications/editors/josm/plugins/reverter/src/reverter/ReverterUploadHook.java	(revision 24887)
+++ applications/editors/josm/plugins/reverter/src/reverter/ReverterUploadHook.java	(revision 24887)
@@ -0,0 +1,51 @@
+package reverter;
+
+import java.util.Map;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.upload.UploadHook;
+import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.data.APIDataSet;
+import org.openstreetmap.josm.gui.io.TagSettingsPanel;
+import org.openstreetmap.josm.gui.io.UploadDialog;
+
+public class ReverterUploadHook implements UploadHook {
+    String pluginString;
+    public ReverterUploadHook(ReverterPlugin plugin) {
+        pluginString = "reverter_plugin/" + plugin.getPluginInformation().version;
+    }
+    @Override
+    public boolean checkUpload(APIDataSet apiDataSet) {
+        if (!ReverterPlugin.reverterUsed) return true;
+        boolean hasRevertions = false;
+        for (Command cmd : Main.main.undoRedo.commands) {
+            if (cmd instanceof RevertChangesetCommand) {
+                hasRevertions = true;
+                break;
+            }
+        }
+
+        UploadDialog ud = UploadDialog.getUploadDialog();
+        Map<String, String> tags = ud.getDefaultChangesetTags();
+        String created_by = tags.get("created_by");
+        if (created_by == null || "".equals(created_by)) {
+            if (hasRevertions) {
+                tags.put("created_by", TagSettingsPanel.getDefaultCreatedBy() + ";" + pluginString);
+                ud.setDefaultChangesetTags(tags);
+            }
+            return true;
+        }
+        if (hasRevertions) {
+            if (!created_by.contains(pluginString)) {
+                tags.put("created_by", created_by + ";" + pluginString);
+            }
+        } else {
+            if (created_by.contains(";" + pluginString)) {
+                tags.put("created_by", created_by.replace(";" + pluginString, ""));
+            }
+        }
+        ud.setDefaultChangesetTags(tags);
+        return true;
+    }
+
+}
