Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 7246)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 7247)
@@ -22,5 +22,4 @@
 import java.awt.geom.Point2D;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.LinkedList;
@@ -56,5 +55,4 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Shortcut;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -180,5 +178,5 @@
     private ReferenceSegment dualAlignSegment1, dualAlignSegment2;
     /** {@code true}, if new segment was collapsed */
-    private boolean dualAlignSegmentCollapsed;
+    private boolean dualAlignSegmentCollapsed = false;
     // Dual alignment UI stuff
     private final DualAlignChangeAction dualAlignChangeAction;
@@ -548,4 +546,5 @@
             moveCommand = null;
             mode = Mode.select;
+            dualAlignSegmentCollapsed = false;
             updateStatusLine();
             Main.map.mapView.repaint();
@@ -590,6 +589,7 @@
         wnew.addNode(selectedSegment.getSecondNode());
         wnew.addNode(third);
-        if (newN1en.distance(newN2en)>1e-6) {
-            wnew.addNode(fourth); // rectangle can degrade to triangle for dual alignment
+        if (!dualAlignSegmentCollapsed) {
+            // rectangle can degrade to triangle for dual alignment after collapsing
+            wnew.addNode(fourth);
         }
         // ... and close the way
@@ -597,5 +597,7 @@
         // undo support
         cmds.add(new AddCommand(third));
-        cmds.add(new AddCommand(fourth));
+        if (!dualAlignSegmentCollapsed) {
+            cmds.add(new AddCommand(fourth));
+        }
         cmds.add(new AddCommand(wnew));
         Command c = new SequenceCommand(tr("Extrude Way"), cmds);
