diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/RemoteTargetHandle.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/RemoteTargetHandle.java
index ef04da5..259af09 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/RemoteTargetHandle.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/RemoteTargetHandle.java
@@ -38,6 +38,8 @@
 		UNKNWON, EXISTS, NOT_FOUND, FAILED;
 	}
 
+	private static final String FILE_SCHEMA = "file:"; //$NON-NLS-1$
+
 	private static final Map<URI, RemoteTargetHandle> REMOTE_HANDLES = new ConcurrentHashMap<>();
 	/**
 	 * URI scheme for local targets
@@ -110,7 +112,7 @@
 		Objects.requireNonNull(uri);
 		try {
 			IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
-			URI resolvedUri = new URI(manager.performStringSubstitution(uri));
+			URI resolvedUri = new URI(convertRawToUri(manager.performStringSubstitution(uri)));
 			RemoteTargetHandle handle = REMOTE_HANDLES.computeIfAbsent(resolvedUri, RemoteTargetHandle::new);
 			synchronized (handle) {
 				if (handle.state != RemoteState.EXISTS) {
@@ -125,4 +127,15 @@
 		}
 	}
 
+	static String convertRawToUri(String resolvePath) {
+		// We need to convert windows path separators here...
+		resolvePath = resolvePath.replace('\\', '/');
+		String lc = resolvePath.toLowerCase();
+		if (lc.startsWith(FILE_SCHEMA) && lc.charAt(FILE_SCHEMA.length()) != '/') {
+			// according to rfc a file URI must always start with a slash
+			resolvePath = FILE_SCHEMA + '/' + resolvePath.substring(FILE_SCHEMA.length());
+		}
+		return resolvePath;
+	}
+
 }
