Index: src/org/openstreetmap/josm/actions/FollowLineAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/FollowLineAction.java	(revision 4092)
+++ src/org/openstreetmap/josm/actions/FollowLineAction.java	(working copy)
@@ -37,8 +37,8 @@
                 "followline.png",
                 tr("Continues drawing a line that shares nodes with another line."),
                 Shortcut.registerShortcut("tools:followline", tr(
-                "Tool: {0}", tr("Follow")),
-                KeyEvent.VK_F, Shortcut.GROUP_EDIT), true);
+                        "Tool: {0}", tr("Follow")),
+                        KeyEvent.VK_F, Shortcut.GROUP_EDIT), true);
     }
 
     @Override
@@ -61,13 +61,14 @@
         if (osmLayer == null)
             return;
         if (!(Main.map.mapMode instanceof DrawAction)) return; // We are not on draw mode
-        
+
         Collection<Node> selectedPoints = osmLayer.data.getSelectedNodes();
         Collection<Way> selectedLines = osmLayer.data.getSelectedWays();
         if ((selectedPoints.size() > 1) || (selectedLines.size() != 1)) // Unsuitable selection
             return;
-        
+
         Node last = ((DrawAction) Main.map.mapMode).getCurrentBaseNode();
+        if (last == null) return; // This may occur after undo
         Way follower = selectedLines.iterator().next();
         Node prev = follower.getNode(1);
         boolean reversed = true;
@@ -77,7 +78,7 @@
         }
         List<OsmPrimitive> referrers = last.getReferrers();
         if (referrers.size() < 2) return; // There's nothing to follow
-        
+
         Iterator<OsmPrimitive> i = referrers.iterator();
         while (i.hasNext()) {
             OsmPrimitive referrer = i.next();
