Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/actions/IncompleteMembersDownloadThread.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/actions/IncompleteMembersDownloadThread.java	(revision 32276)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/actions/IncompleteMembersDownloadThread.java	(revision 32277)
@@ -14,4 +14,8 @@
 		super();
 		relation = r;
+	}
+	
+	private void realRun() {
+		
 	}
 
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/IncompleteMembersDownloadDialog.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/IncompleteMembersDownloadDialog.java	(revision 32276)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/IncompleteMembersDownloadDialog.java	(revision 32277)
@@ -31,5 +31,5 @@
 		message = tr("The relation (id=" + id
 				+ ") has incomplete members.\nThey need to be downloaded to proceed with validation of this relation.\nDo you want to download incomplete members?");
-		checkbox = new JCheckBox(tr("Remember my choice and don''t ask me again in this session"));
+		checkbox = new JCheckBox(tr("Remember my choice and don't ask me again in this session"));
 		options = new String[2];
 		options[0] = tr("Yes");
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/ProceedDialog.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/ProceedDialog.java	(revision 32276)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/gui/ProceedDialog.java	(revision 32277)
@@ -3,5 +3,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.awt.BorderLayout;
 import java.awt.Component;
 
@@ -13,4 +12,5 @@
 import javax.swing.JPanel;
 import javax.swing.JRadioButton;
+import javax.swing.SwingUtilities;
 
 public class ProceedDialog extends JPanel {
@@ -37,9 +37,9 @@
 		panel = new JPanel();
 		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
-		
+
 		JLabel label1 = new JLabel(tr("PT_Assistant plugin found that this relation (id=" + id + ") has errors:"));
 		panel.add(label1);
 		label1.setAlignmentX(Component.LEFT_ALIGNMENT);
-		
+
 		if (numberOfDirectionErrors != 0) {
 			JLabel label2 = new JLabel("     " + numberOfDirectionErrors + tr(" direction errors"));
@@ -47,5 +47,5 @@
 			label2.setAlignmentX(Component.LEFT_ALIGNMENT);
 		}
-		
+
 		if (numberOfRoadTypeErrors != 0) {
 			JLabel label3 = new JLabel("     " + numberOfRoadTypeErrors + tr(" road type errors"));
@@ -53,13 +53,11 @@
 			label3.setAlignmentX(Component.LEFT_ALIGNMENT);
 		}
-		
+
 		JLabel label4 = new JLabel(tr("How do you want to proceed?"));
 		panel.add(label4);
 		label4.setAlignmentX(Component.LEFT_ALIGNMENT);
 
-		radioButtonFixAutomatically = new JRadioButton("Fix all errors automatically and proceed",
-				true);
-		radioButtonFixManually = new JRadioButton(
-				"I will fix the erros manually and click the button to proceed");
+		radioButtonFixAutomatically = new JRadioButton("Fix all errors automatically and proceed", true);
+		radioButtonFixManually = new JRadioButton("I will fix the erros manually and click the button to proceed");
 		radioButtonDontFix = new JRadioButton("Do not fix anything and proceed with further tests");
 		ButtonGroup fixOptionButtonGroup = new ButtonGroup();
@@ -73,10 +71,9 @@
 		radioButtonFixManually.setAlignmentX(Component.LEFT_ALIGNMENT);
 		radioButtonDontFix.setAlignmentX(Component.LEFT_ALIGNMENT);
-		
 
-		checkbox = new JCheckBox(tr("Remember my choice and don''t ask me again in this session"));
+		checkbox = new JCheckBox(tr("Remember my choice and don't ask me again in this session"));
 		panel.add(checkbox);
 		checkbox.setAlignmentX(Component.LEFT_ALIGNMENT);
-		
+
 		options = new String[2];
 		options[0] = "OK";
@@ -107,11 +104,8 @@
 		}
 
-		// FIXME: change to avoid EDT errors
+		// showDialog(); FIXME
 		selectedOption = JOptionPane.showOptionDialog(this, panel, tr("PT_Assistant Proceed Request"),
 				JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, 0);
-		
-		
 
-		
 		if (selectedOption == 0) {
 			if (radioButtonFixAutomatically.isSelected()) {
@@ -138,3 +132,24 @@
 	}
 
+	/**
+	 * 
+	 */
+	private void showDialog() {
+
+		if (!SwingUtilities.isEventDispatchThread()) {
+			selectedOption = JOptionPane.showOptionDialog(this, panel, tr("PT_Assistant Proceed Request"),
+					JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, 0);
+		} else {
+
+			SwingUtilities.invokeLater(new Runnable() {
+				@Override
+				public void run() {
+					showDialog();
+				}
+			});
+
+		}
+
+	}
+
 }
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java	(revision 32276)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java	(revision 32277)
@@ -127,4 +127,9 @@
 		}
 
+		if (way.hasTag("highway", "pedestrian") && (way.hasTag("bus", "yes") || way.hasTag("psv", "yes")
+				|| way.hasTag("bus", "designated") || way.hasTag("psv", "designated"))) {
+			return true;
+		}
+
 		return false;
 	}
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/DirectionTest.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/DirectionTest.java	(revision 32276)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/DirectionTest.java	(revision 32277)
@@ -6,10 +6,7 @@
 import java.util.List;
 
-import javax.swing.JOptionPane;
-
 import org.openstreetmap.josm.command.ChangeCommand;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.SequenceCommand;
-import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
@@ -79,4 +76,6 @@
 
 				if (!waysToCheck.get(i).getWay().hasTag("busway", "lane")
+						&& !waysToCheck.get(i).getWay().hasTag("busway:left", "lane")
+						&& !waysToCheck.get(i).getWay().hasTag("busway:right", "lane")
 						&& !waysToCheck.get(i).getWay().hasTag("oneway:bus", "no")
 						&& !waysToCheck.get(i).getWay().hasTag("busway", "opposite_lane")
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java	(revision 32276)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java	(revision 32277)
@@ -7,4 +7,5 @@
 
 import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
 
 import org.openstreetmap.josm.command.ChangeCommand;
@@ -113,6 +114,6 @@
 		}
 
+
 		ProceedDialog proceedDialog = new ProceedDialog(r.getId(), numberOfDirectionErrors, numberOfRoadTypeErrors);
-
 		int userInput = proceedDialog.getUserSelection();
 
@@ -138,4 +139,5 @@
 
 	}
+	
 
 	/**
Index: /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java
===================================================================
--- /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java	(revision 32276)
+++ /applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java	(revision 32277)
@@ -42,13 +42,14 @@
 		this.test = test;
 		this.relation = r;
-		
+
 		this.performDirectionTest();
 		this.performRoadTypeTest();
-		
+
 	}
 
 	private void performRoadTypeTest() {
-		
-		if (!relation.hasTag("route", "bus") && !relation.hasTag("route", "trolleybus") && !relation.hasTag("route", "share_taxi")) {
+
+		if (!relation.hasTag("route", "bus") && !relation.hasTag("route", "trolleybus")
+				&& !relation.hasTag("route", "share_taxi")) {
 			return;
 		}
@@ -137,4 +138,6 @@
 
 				if (!waysToCheck.get(i).getWay().hasTag("busway", "lane")
+						&& !waysToCheck.get(i).getWay().hasTag("busway:left", "lane")
+						&& !waysToCheck.get(i).getWay().hasTag("busway:right", "lane")
 						&& !waysToCheck.get(i).getWay().hasTag("oneway:bus", "no")
 						&& !waysToCheck.get(i).getWay().hasTag("busway", "opposite_lane")
@@ -183,4 +186,9 @@
 		}
 
+		if (way.hasTag("highway", "pedestrian") && (way.hasTag("bus", "yes") || way.hasTag("psv", "yes")
+				|| way.hasTag("bus", "designated") || way.hasTag("psv", "designated"))) {
+			return true;
+		}
+
 		return false;
 	}
