diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java
index 565a2c6d3582dabacfd526c498961845f174aeaf..5a2ad896c626dbf0e26d282e9d730f117115090a 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java
@@ -31,7 +31,6 @@ import org.briarproject.bramble.util.AndroidUtils;
 import org.briarproject.bramble.util.StringUtils;
 import org.briarproject.briar.api.android.AndroidNotificationManager;
 import org.briarproject.briar.api.android.DozeWatchdog;
-import org.briarproject.briar.api.android.ReferenceManager;
 import org.briarproject.briar.api.android.ScreenFilterMonitor;
 
 import java.io.File;
@@ -166,12 +165,6 @@ public class AppModule {
 		return app.getSharedPreferences("db", MODE_PRIVATE);
 	}
 
-	@Provides
-	@Singleton
-	ReferenceManager provideReferenceManager() {
-		return new ReferenceManagerImpl();
-	}
-
 	@Provides
 	@Singleton
 	AndroidNotificationManager provideAndroidNotificationManager(
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/ReferenceManagerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/ReferenceManagerImpl.java
deleted file mode 100644
index 99fa824980fbb40351e4b9181cd9ec4517df66b6..0000000000000000000000000000000000000000
--- a/briar-android/src/main/java/org/briarproject/briar/android/ReferenceManagerImpl.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.briarproject.briar.android;
-
-import org.briarproject.briar.api.android.ReferenceManager;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Logger;
-
-import static java.util.logging.Level.INFO;
-
-class ReferenceManagerImpl implements ReferenceManager {
-
-	private static final Logger LOG =
-			Logger.getLogger(ReferenceManagerImpl.class.getName());
-
-	private final Lock lock = new ReentrantLock();
-
-	// The following are locking: lock
-	private final Map<Class<?>, Map<Long, Object>> outerMap = new HashMap<>();
-	private long nextHandle = 0;
-
-	@Override
-	public <T> T getReference(long handle, Class<T> c) {
-		lock.lock();
-		try {
-			Map<Long, Object> innerMap = outerMap.get(c);
-			if (innerMap == null) {
-				if (LOG.isLoggable(INFO))
-					LOG.info("0 handles for " + c.getName());
-				return null;
-			}
-			if (LOG.isLoggable(INFO))
-				LOG.info(innerMap.size() + " handles for " + c.getName());
-			Object o = innerMap.get(handle);
-			return c.cast(o);
-		} finally {
-			lock.unlock();
-		}
-
-	}
-
-	@Override
-	public <T> long putReference(T reference, Class<T> c) {
-		lock.lock();
-		try {
-			Map<Long, Object> innerMap = outerMap.get(c);
-			if (innerMap == null) {
-				innerMap = new HashMap<>();
-				outerMap.put(c, innerMap);
-			}
-			long handle = nextHandle++;
-			innerMap.put(handle, reference);
-			if (LOG.isLoggable(INFO)) {
-				LOG.info(innerMap.size() + " handles for " + c.getName() +
-						" after put");
-			}
-			return handle;
-		} finally {
-			lock.unlock();
-		}
-	}
-
-	@Override
-	public <T> T removeReference(long handle, Class<T> c) {
-		lock.lock();
-		try {
-			Map<Long, Object> innerMap = outerMap.get(c);
-			if (innerMap == null) return null;
-			Object o = innerMap.remove(handle);
-			if (innerMap.isEmpty()) outerMap.remove(c);
-			if (LOG.isLoggable(INFO)) {
-				LOG.info(innerMap.size() + " handles for " + c.getName() +
-						" after remove");
-			}
-			return c.cast(o);
-		} finally {
-			lock.unlock();
-		}
-
-	}
-}
diff --git a/briar-android/src/main/java/org/briarproject/briar/api/android/ReferenceManager.java b/briar-android/src/main/java/org/briarproject/briar/api/android/ReferenceManager.java
deleted file mode 100644
index e29b1d95513035c4ae4521f5ba6dbcb77930a0b4..0000000000000000000000000000000000000000
--- a/briar-android/src/main/java/org/briarproject/briar/api/android/ReferenceManager.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.briarproject.briar.api.android;
-
-/**
- * Manages mappings between object references and serialisable handles. This
- * enables references to be passed between Android UI objects that belong to
- * the same process but can only communicate via serialisation.
- */
-public interface ReferenceManager {
-
-	/**
-	 * Returns the object with the given handle, or null if no mapping exists
-	 * for the handle.
-	 */
-	<T> T getReference(long handle, Class<T> c);
-
-	/**
-	 * Creates a mapping between the given reference and a handle, and returns
-	 * the handle.
-	 */
-	<T> long putReference(T reference, Class<T> c);
-
-	/**
-	 * Removes and returns the object with the given handle, or returns null
-	 * if no mapping exists for the handle.
-	 */
-	<T> T removeReference(long handle, Class<T> c);
-}