Index: /applications/editors/josm/plugins/undelete/src/org/openstreetmap/josm/plugins/undelete/UndeleteAction.java
===================================================================
--- /applications/editors/josm/plugins/undelete/src/org/openstreetmap/josm/plugins/undelete/UndeleteAction.java	(revision 34882)
+++ /applications/editors/josm/plugins/undelete/src/org/openstreetmap/josm/plugins/undelete/UndeleteAction.java	(revision 34883)
@@ -19,4 +19,5 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.NodeData;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
@@ -87,10 +88,17 @@
 
                         if (visible) {
-                            // If the object is not deleted we get the real object
-                            DownloadPrimitivesTask download = new DownloadPrimitivesTask(layer, Collections.singletonList(pid), true);
-                            download.setZoom(false);
-                            download.run();
-
-                            primitive = layer.data.getPrimitiveById(id, type);
+                            if (type == OsmPrimitiveType.NODE) {
+                                // we have all needed information in the history object
+                                primitive = new Node(hPrimitive1.getId());
+                                HistoryNode hNode = (HistoryNode) hPrimitive1;
+                                primitive.load(hNode.fillPrimitiveData(new NodeData()));
+                                layer.data.addPrimitive(primitive);
+                            } else {
+                                // If the way or relation is not deleted we get the real object
+                                DownloadPrimitivesTask download = new DownloadPrimitivesTask(layer, Collections.singletonList(pid), true);
+                                download.setZoom(false);
+                                download.run();
+                                primitive = layer.data.getPrimitiveById(id, type);
+                            }
                             restored.add(primitive);
                         } else {
