diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java
index 704e1e312e7d1c33fa0feb434beedd16f44c2d46..50b861d8954a7e0e1e4e2adbee9a40cd3592f54a 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java
@@ -4,11 +4,14 @@ import org.briarproject.bramble.api.Bytes;
 import org.briarproject.bramble.api.FormatException;
 
 import java.util.Map;
-import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.Map.Entry;
+import java.util.TreeMap;
 
 import javax.annotation.Nullable;
+import javax.annotation.concurrent.NotThreadSafe;
 
-public class BdfDictionary extends ConcurrentSkipListMap<String, Object> {
+@NotThreadSafe
+public class BdfDictionary extends TreeMap<String, Object> {
 
 	public static final Object NULL_VALUE = new Object();
 
diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java
index 8f1d47e4ec39eb258a604fbd02714578164cf3e7..21ec227280e2be87869e7a739b4030697ad1402a 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java
@@ -3,15 +3,17 @@ package org.briarproject.bramble.api.data;
 import org.briarproject.bramble.api.Bytes;
 import org.briarproject.bramble.api.FormatException;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Vector;
 
 import javax.annotation.Nullable;
+import javax.annotation.concurrent.NotThreadSafe;
 
 import static org.briarproject.bramble.api.data.BdfDictionary.NULL_VALUE;
 
-public class BdfList extends Vector<Object> {
+@NotThreadSafe
+public class BdfList extends ArrayList<Object> {
 
 	/**
 	 * Factory method for constructing lists inline.
diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java b/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java
index 0b70a067f449418f67b8653fe497be072231144d..34358400c58a2a59b2261be8ab0cc26305b2d9f9 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java
@@ -1,11 +1,11 @@
 package org.briarproject.bramble.api.db;
 
-import java.util.Hashtable;
+import java.util.TreeMap;
 
-import javax.annotation.concurrent.ThreadSafe;
+import javax.annotation.concurrent.NotThreadSafe;
 
-@ThreadSafe
-public class Metadata extends Hashtable<String, byte[]> {
+@NotThreadSafe
+public class Metadata extends TreeMap<String, byte[]> {
 
 	/**
 	 * Special value to indicate that a key is being removed.
diff --git a/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java b/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java
index eb3283c79c4644963fa9e0548ae7e2d35cd3b745..6fa9be04f19f36a8aaa31cccbd628dd9c357547b 100644
--- a/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java
+++ b/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java
@@ -75,7 +75,7 @@ class BlogPostValidator extends BdfMessageValidator {
 		BdfMessageContext c;
 
 		int type = body.getLong(0).intValue();
-		body.removeElementAt(0);
+		body.remove(0);
 		switch (MessageType.valueOf(type)) {
 			case POST:
 				c = validatePost(m, g, body);