Index: /applications/editors/josm/plugins/alignways/src/com/tilusnet/josm/plugins/alignways/AlignWaysCmdKeepAngles.java
===================================================================
--- /applications/editors/josm/plugins/alignways/src/com/tilusnet/josm/plugins/alignways/AlignWaysCmdKeepAngles.java	(revision 27605)
+++ /applications/editors/josm/plugins/alignways/src/com/tilusnet/josm/plugins/alignways/AlignWaysCmdKeepAngles.java	(revision 27606)
@@ -66,9 +66,12 @@
             //  - the adjacent way segment
         	
-        	EastNorth enAdjOther1 = getNonEqualEN(alws.get(0), endpoint);
+        	Node adjOther1 = getNonEqualNode(alws.get(0), endpoint);
+        	EastNorth enAdjOther1 = adjOther1.getEastNorth();
+        	Node adjOther2 = null;
         	EastNorth enAdjOther2 = null;
 
             if (alws.size() == 2) {
-            	enAdjOther2 = getNonEqualEN(alws.get(1), endpoint);
+            	adjOther2 = getNonEqualNode(alws.get(1), endpoint);
+            	enAdjOther2 = adjOther2.getEastNorth();
             	
             	// In order have a chance to align, (enAdjOther1, enAdjOther2 and endpoint) must be collinear
@@ -98,4 +101,6 @@
             }
             
+            // TODO - THIS APPROACH IS FAULTY!
+            // 
             // For the case of two adjacent segments with collinear points, the new endpoint may  
             // not fall between enAdjOther1 and enAdjOther2; in this case one of them is redundant 
@@ -124,10 +129,10 @@
 	                		// Intersection point didn't fall between the two adjacent points; something must go 
 	                		if (middlePt.equalsEpsilon(enAdjOther1, eps)) {
-	                			// TODO Delete enAdjOther1
+	                			// Delete adjOther1
+	                			// adjOther1.setDeleted(true);
+	                		} else
 	                			if (true);
-	                			// Main.map.
-	                		} else
-	                			// TODO Delete enAdjOther2
-	                			if (true);
+	                			// Delete adjOther2
+	                			// adjOther2.setDeleted(true);
 	                	}
 	            	}
@@ -155,9 +160,9 @@
 
 
-	private EastNorth getNonEqualEN(WaySegment waySegment, Node endpoint) {
+	private Node getNonEqualNode(WaySegment waySegment, Node endpoint) {
     	if (waySegment.getFirstNode().equals(endpoint)) {
-    		return waySegment.getSecondNode().getEastNorth();
+    		return waySegment.getSecondNode();
     	} else if (waySegment.getSecondNode().equals(endpoint)) {
-    		return waySegment.getFirstNode().getEastNorth();
+    		return waySegment.getFirstNode();
     	} else
     		return null;
