Index: applications/editors/josm/plugins/reverter/src/reverter/ChangesetReverter.java
===================================================================
--- applications/editors/josm/plugins/reverter/src/reverter/ChangesetReverter.java	(revision 29552)
+++ applications/editors/josm/plugins/reverter/src/reverter/ChangesetReverter.java	(revision 29553)
@@ -5,4 +5,5 @@
 import java.net.HttpURLConnection;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -174,4 +175,27 @@
         addMissingHistoryIds(deleted);
     }
+    
+    private void readObjectVersion(OsmServerMultiObjectReader rdr, PrimitiveId id, int version, ProgressMonitor progressMonitor) throws OsmTransferException {
+        boolean readOK = false;
+        while (!readOK && version >= 1) {
+            try {
+                rdr.readObject(id, version, progressMonitor.createSubTaskMonitor(1, true));
+                readOK = true;
+            } catch (OsmApiException e) {
+                if (e.getResponseCode() != HttpURLConnection.HTTP_FORBIDDEN) {
+                    throw e;
+                }
+                String message = "Version "+version+" of "+id+" is unauthorized";
+                if (version > 1) {
+                    message += ", requesting previous one";
+                }
+                Main.info(message);
+                version--;
+            }
+        }
+        if (!readOK) {
+            Main.warn("Cannot retrieve any previous version of "+id);
+        }
+    }
 
     /**
@@ -188,25 +212,5 @@
                 for (HistoryOsmPrimitive entry : collection) {
                     PrimitiveId id = entry.getPrimitiveId();
-                    int version = cds.getEarliestVersion(id)-1;
-                    boolean readOK = false;
-                    while (!readOK && version >= 1) {
-                        try {
-                            rdr.readObject(id, version, progressMonitor.createSubTaskMonitor(1, true));
-                            readOK = true;
-                        } catch (OsmApiException e) {
-                            if (e.getResponseCode() != HttpURLConnection.HTTP_FORBIDDEN) {
-                                throw e;
-                            }
-                            String message = "Version "+version+" of "+id+" is unauthorized";
-                            if (version > 1) {
-                                message += ", requesting previous one";
-                            }
-                            Main.info(message);
-                            version--;
-                        }
-                    }
-                    if (!readOK) {
-                        Main.warn("Cannot retrieve any previous version of "+id);
-                    }
+                    readObjectVersion(rdr, id, cds.getEarliestVersion(id)-1, progressMonitor);
                     if (progressMonitor.isCanceled()) return;
                 }
@@ -412,3 +416,20 @@
         return !missing.isEmpty();
     }
+    
+    public void fixNodesWithoutCoordinates(ProgressMonitor progressMonitor) throws OsmTransferException {
+        for (Node n : nds.getNodes()) {
+            if (!n.isDeleted() && n.getCoor() == null) {
+                PrimitiveId id = n.getPrimitiveId();
+                OsmPrimitive p = ds.getPrimitiveById(id);
+                if (p instanceof Node && p.getVersion() > 1) {
+                    final OsmServerMultiObjectReader rdr = new OsmServerMultiObjectReader();
+                    readObjectVersion(rdr, id, p.getVersion()-1, progressMonitor);
+                    Collection<OsmPrimitive> result = rdr.parseOsm(progressMonitor.createSubTaskMonitor(1, true)).allPrimitives();
+                    if (!result.isEmpty()) {
+                        n.setCoor(((Node)result.iterator().next()).getCoor());
+                    }
+                }
+            }
+        }
+    }
 }
Index: applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetTask.java
===================================================================
--- applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetTask.java	(revision 29552)
+++ applications/editors/josm/plugins/reverter/src/reverter/RevertChangesetTask.java	(revision 29553)
@@ -85,4 +85,5 @@
         if (progressMonitor.isCanceled()) return;
         if (!checkAndDownloadMissing()) return;
+        rev.fixNodesWithoutCoordinates(progressMonitor);
         List<Command> cmds = rev.getCommands();
         final Command cmd = new RevertChangesetCommand(tr(revertType == RevertType.FULL ? "Revert changeset #{0}" :
