Index: applications/editors/josm/plugins/utilsplugin/src/UtilsPlugin/SimplifyWayAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin/src/UtilsPlugin/SimplifyWayAction.java	(revision 18415)
+++ applications/editors/josm/plugins/utilsplugin/src/UtilsPlugin/SimplifyWayAction.java	(revision 18926)
@@ -26,5 +26,4 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.osm.visitor.CollectBackReferencesVisitor;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -107,13 +106,15 @@
 
         int toI = wnew.getNodesCount() - 1;
+        List<OsmPrimitive> parents = new ArrayList<OsmPrimitive>();
         for (int i = wnew.getNodesCount() - 1; i >= 0; i--) {
-            CollectBackReferencesVisitor backRefsV = new CollectBackReferencesVisitor(Main.main.getCurrentDataSet(), false);
-            backRefsV.visit(wnew.getNode(i));
+            //CollectBackReferencesVisitor backRefsV = new CollectBackReferencesVisitor(Main.main.getCurrentDataSet(), false);
+            //backRefsV.visit(wnew.getNode(i));
+        	parents.addAll(w.getNode(i).getReferrers()); 
             boolean used = false;
-            if (backRefsV.getData().size() == 1) {
+            if (parents.size() == 1) {
                 used = Collections.frequency(w.getNodes(), wnew.getNode(i)) > 1;
             } else {
-                backRefsV.getData().remove(w);
-                used = !backRefsV.getData().isEmpty();
+                parents.remove(w);
+                used = !parents.isEmpty();
             }
             if (!used)
