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 32237)
+++ applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/actions/IncompleteMembersDownloadThread.java	(revision 32238)
@@ -3,8 +3,6 @@
 import java.util.ArrayList;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.PrimitiveId;
 import org.openstreetmap.josm.data.osm.Relation;
-import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.gui.io.DownloadPrimitivesWithReferrersTask;
 
@@ -24,8 +22,6 @@
 		synchronized (this) {
 
-			ArrayList<PrimitiveId> list = new ArrayList<>();
-			for (RelationMember rm : relation.getMembers()) {
-				list.add(rm);
-			}
+			ArrayList<PrimitiveId> list = new ArrayList<>(1);
+			list.add(relation);
 
 			DownloadPrimitivesWithReferrersTask task = new DownloadPrimitivesWithReferrersTask(false, list, false, true,
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 32237)
+++ applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/PTAssitantValidatorTest.java	(revision 32238)
@@ -6,5 +6,4 @@
 import java.util.List;
 
-import javax.swing.JCheckBox;
 import javax.swing.JOptionPane;
 
@@ -21,4 +20,5 @@
 import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionTypeCalculator;
 import org.openstreetmap.josm.plugins.pt_assistant.actions.IncompleteMembersDownloadThread;
+import org.openstreetmap.josm.plugins.pt_assistant.gui.IncompleteMembersDownloadDialog;
 import org.openstreetmap.josm.plugins.pt_assistant.utils.RouteUtils;
 
@@ -39,36 +39,63 @@
 		}
 
+		// Download incomplete members. If the download does not work, finish.
 		if (r.hasIncompleteMembers()) {
-
-			// IncompleteMembersDownloadDialog incompleteDialog = new
-			// IncompleteMembersDownloadDialog(r.getId());
-			//
-			// int userInput = incompleteDialog.getUserSelection();
-
-			String message = tr("The relation (id=" + r.getId()
-					+ ") has incomplete members.\nThey need to be downloaded to proceed with validation of this relation.\nDo you want to download incomplete members?");
-			JCheckBox checkbox = new JCheckBox(tr("Remember my choice and don't ask me again in this session"));
-			Object[] params = { message, checkbox };
-			String[] options = { tr("Yes"), tr("No") };
-
-			int userInput = Integer.MIN_VALUE;
-			userInput = JOptionPane.showOptionDialog(null, params, tr("Fetch Request"), JOptionPane.YES_NO_OPTION,
-					JOptionPane.QUESTION_MESSAGE, null, options, 0);
-
-			if (userInput == 0) {
-
-				Thread t = new IncompleteMembersDownloadThread(r);
-				t.start();
-				synchronized (t) {
-					try {
-						t.wait();
-					} catch (InterruptedException e) {
-						return;
-					}
-				}
-
+			boolean downloadSuccessful = this.downloadIncompleteMembers(r);
+			if (!downloadSuccessful) {
+				return;
 			}
 		}
 
+		performDummyTest(r);
+
+
+
+
+
+	}
+
+	/**
+	 * Downloads incomplete relation members in an extra thread (user input
+	 * required)
+	 * 
+	 * @return true if successful, false if not successful
+	 */
+	private boolean downloadIncompleteMembers(Relation r) {
+		IncompleteMembersDownloadDialog incompleteMembersDownloadDialog = new IncompleteMembersDownloadDialog(
+				r.getId());
+
+		int userInput = incompleteMembersDownloadDialog.getUserSelection();
+
+		if (userInput == JOptionPane.YES_OPTION) {
+
+			Thread t = new IncompleteMembersDownloadThread(r);
+			t.start();
+			synchronized (t) {
+				try {
+					t.wait();
+				} catch (InterruptedException e) {
+					return false;
+				}
+			}
+			return true;
+		}
+		
+		return false;
+	}
+
+	/**
+	 * Checks if the test error is fixable
+	 */
+	@Override
+	public boolean isFixable(TestError testError) {
+		return false;
+	}
+
+	@Override
+	public Command fixError(TestError testError) {
+		return null;
+	}
+	
+	private void performDirectionTest(Relation r) {
 		List<RelationMember> waysToCheck = new ArrayList<>();
 
@@ -82,5 +109,5 @@
 			return;
 		}
-
+		
 		WayConnectionTypeCalculator connectionTypeCalculator = new WayConnectionTypeCalculator();
 		final List<WayConnectionType> links = connectionTypeCalculator.updateLinks(waysToCheck);
@@ -113,22 +140,10 @@
 			}
 		}
-		
-//		List<Relation> primitives = new ArrayList<>(1);
-//		primitives.add(r);
-//		errors.add(new TestError(this, Severity.WARNING, tr("PT: test warning"), ERROR_CODE_DIRECTION, primitives));
-		
 	}
-
-	/**
-	 * Checks if the test error is fixable
-	 */
-	@Override
-	public boolean isFixable(TestError testError) {
-		return false;
-	}
-
-	@Override
-	public Command fixError(TestError testError) {
-		return null;
+	
+	private void performDummyTest(Relation r) {
+		 List<Relation> primitives = new ArrayList<>(1);
+		 primitives.add(r);
+		 errors.add(new TestError(this, Severity.WARNING, tr("PT: dummy test warning"), ERROR_CODE_DIRECTION, primitives));
 	}
 
