diff --git a/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java b/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
index ccdf0bc0e2d6777573fe5acbfe0cfde42aa771bb..4973d52243b94c29a7e6e05eeb442081c5126550 100644
--- a/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
+++ b/components/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
@@ -10,8 +10,9 @@ class LinuxRemovableDriveFinder extends UnixRemovableDriveFinder {
 	@Override
 	protected String parseMountPoint(String line) {
 		// The format is "/dev/foo on /bar/baz type bam (opt1,opt2)"
-		line = line.replaceFirst("^/dev/[^ ]+ on ", "");
-		return line.replaceFirst(" type [^ ]+ \\([^)]+\\)$", "");
+		String pattern = "^/dev/[^ ]+ on (.*) type [^ ]+ \\([^)]+\\)$";
+		String path = line.replaceFirst(pattern, "$1");
+		return path.equals(line) ? null : path;
 	}
 
 	@Override
diff --git a/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java b/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
index ec1ae07086c929841664ce439c9cde3dc0fdc8dc..453a3d836bf4bf4ec7d3d01966815eb1af7b0657 100644
--- a/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
+++ b/components/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
@@ -10,8 +10,9 @@ class MacRemovableDriveFinder extends UnixRemovableDriveFinder {
 	@Override
 	protected String parseMountPoint(String line) {
 		// The format is "/dev/foo on /bar/baz (opt1, opt2)"
-		line = line.replaceFirst("^/dev/[^ ]+ on ", "");
-		return line.replaceFirst(" \\([^)]+\\)$", "");
+		String pattern = "^/dev/[^ ]+ on (.*) \\([^)]+\\)$";
+		String path = line.replaceFirst(pattern, "$1");
+		return path.equals(line) ? null : path;
 	}
 
 	@Override
diff --git a/test/build.xml b/test/build.xml
index 73ecb1176dc5ac5bf5ae1dec4b6c12f47aa7013d..bb35591483669359053b32bde42d33fc6de6e1df 100644
--- a/test/build.xml
+++ b/test/build.xml
@@ -25,6 +25,8 @@
 			<test name='net.sf.briar.i18n.FontManagerTest'/>
 			<test name='net.sf.briar.i18n.I18nTest'/>
 			<test name='net.sf.briar.invitation.InvitationWorkerTest'/>
+			<test name='net.sf.briar.plugins.file.LinuxRemovableDriveFinderTest'/>
+			<test name='net.sf.briar.plugins.file.MacRemovableDriveFinderTest'/>
 			<test name='net.sf.briar.plugins.file.RemovableDrivePluginTest'/>
 			<test name='net.sf.briar.protocol.AckReaderTest'/>
 			<test name='net.sf.briar.protocol.BatchReaderTest'/>
diff --git a/test/net/sf/briar/plugins/file/LinuxRemovableDriveFinderTest.java b/test/net/sf/briar/plugins/file/LinuxRemovableDriveFinderTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..4a8a85b5d2d54279e24ee416b2f2ca398708bbc8
--- /dev/null
+++ b/test/net/sf/briar/plugins/file/LinuxRemovableDriveFinderTest.java
@@ -0,0 +1,25 @@
+package net.sf.briar.plugins.file;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class LinuxRemovableDriveFinderTest extends TestCase {
+
+	@Test
+	public void testParseMountPoint() {
+		LinuxRemovableDriveFinder f = new LinuxRemovableDriveFinder();
+		String line = "/dev/sda3 on / type ext3"
+			+ " (rw,errors=remount-ro,commit=0)";
+		assertEquals("/", f.parseMountPoint(line));
+		line = "gvfs-fuse-daemon on /home/alice/.gvfs"
+			+ " type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=alice)";
+		assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+		line = "fusectl on /sys/fs/fuse/connections type fusectl (rw)";
+		assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+		line = "/dev/sdd1 on /media/HAZ SPACE(!) type vfat"
+			+ " (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,"
+			+ "shortname=mixed,dmask=0077,utf8=1,showexec,flush)";
+		assertEquals("/media/HAZ SPACE(!)", f.parseMountPoint(line));
+	}
+}
diff --git a/test/net/sf/briar/plugins/file/MacRemovableDriveFinderTest.java b/test/net/sf/briar/plugins/file/MacRemovableDriveFinderTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b1848033a5171d11762a4f6e72fe577954a00ab
--- /dev/null
+++ b/test/net/sf/briar/plugins/file/MacRemovableDriveFinderTest.java
@@ -0,0 +1,23 @@
+package net.sf.briar.plugins.file;
+
+import junit.framework.TestCase;
+
+import org.junit.Test;
+
+public class MacRemovableDriveFinderTest extends TestCase {
+
+	@Test
+	public void testParseMountPoint() {
+		MacRemovableDriveFinder f = new MacRemovableDriveFinder();
+		String line = "/dev/disk0s3 on / (local, journaled)";
+		assertEquals("/", f.parseMountPoint(line));
+		line = "devfs on /dev (local)";
+		assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+		line = "<volfs> on /.vol";
+		assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+		line = "automount -nsl [117] on /Network (automounted)";
+		assertEquals(null, f.parseMountPoint(line)); // Can't be parsed
+		line = "/dev/disk1s1 on /Volumes/HAZ SPACE(!) (local, nodev, nosuid)";
+		assertEquals("/Volumes/HAZ SPACE(!)", f.parseMountPoint(line));
+	}
+}