diff --git a/test/build.xml b/test/build.xml
index 84cbbdfff14a65ec1508b5344afd271bdca36bc2..284ead0fec298756fa396eef57c432d80ddb7f8c 100644
--- a/test/build.xml
+++ b/test/build.xml
@@ -13,6 +13,7 @@
 				<path refid='test-classes'/>
 				<path refid='util-classes'/>
 			</classpath>
+			<jvmarg value='-Djava.library.path=../lib'/>
 			<test name='net.sf.briar.LockFairnessTest'/>
 			<test name='net.sf.briar.ProtocolIntegrationTest'/>
 			<test name='net.sf.briar.crypto.CounterModeTest'/>
diff --git a/test/net/sf/briar/plugins/file/UnixRemovableDriveMonitorTest.java b/test/net/sf/briar/plugins/file/UnixRemovableDriveMonitorTest.java
index b4294b1adc00517fce9a9337fd7531f9a4ba7030..2c2dd6047a17d30096dfab431831daa56507e7d2 100644
--- a/test/net/sf/briar/plugins/file/UnixRemovableDriveMonitorTest.java
+++ b/test/net/sf/briar/plugins/file/UnixRemovableDriveMonitorTest.java
@@ -36,15 +36,14 @@ public class UnixRemovableDriveMonitorTest extends TestCase {
 		final CountDownLatch latch = new CountDownLatch(1);
 		final List<File> detected = new ArrayList<File>();
 		// Create a monitor that will wait for two files before stopping
+		final RemovableDriveMonitor monitor = createMonitor(testDir);
+		monitor.start();
 		new Thread() {
 			@Override
 			public void run() {
 				try {
-					RemovableDriveMonitor monitor = createMonitor(testDir);
-					monitor.start();
 					detected.add(monitor.waitForInsertion());
 					detected.add(monitor.waitForInsertion());
-					monitor.stop();
 					latch.countDown();
 				} catch(IOException e) {
 					fail();
@@ -57,7 +56,8 @@ public class UnixRemovableDriveMonitorTest extends TestCase {
 		assertTrue(file1.createNewFile());
 		assertTrue(file2.createNewFile());
 		// Wait for the monitor to detect the files
-		latch.await(1, TimeUnit.SECONDS);
+		assertTrue(latch.await(2, TimeUnit.SECONDS));
+		monitor.stop();
 		// Check that both files were detected
 		assertEquals(2, detected.size());
 		assertTrue(detected.contains(file1));