Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 13510)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 13512)
@@ -49,4 +49,5 @@
 import org.openstreetmap.josm.gui.util.ModifierExListener;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Pair;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -255,6 +256,10 @@
             if (ctrl && candidateSegment != null) {
                 g.setStroke(ADD_NODE_STROKE.get());
-                p1 = candidateSegment.getFirstNode();
-                p2 = candidateSegment.getSecondNode();
+                try {
+                    p1 = candidateSegment.getFirstNode();
+                    p2 = candidateSegment.getSecondNode();
+                } catch (ArrayIndexOutOfBoundsException e) {
+                    Logging.error(e);
+                }
             } else if (!alt && !ctrl && candidateNode != null) {
                 g.setStroke(MOVE_NODE_STROKE.get());
Index: trunk/src/org/openstreetmap/josm/data/osm/Way.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 13510)
+++ trunk/src/org/openstreetmap/josm/data/osm/Way.java	(revision 13512)
@@ -123,5 +123,5 @@
      * @param index the position
      * @return  the node at position <code>index</code>
-     * @throws IndexOutOfBoundsException if <code>index</code> &lt; 0
+     * @throws ArrayIndexOutOfBoundsException if <code>index</code> &lt; 0
      * or <code>index</code> &gt;= {@link #getNodesCount()}
      * @since 1862
