diff --git a/src/ssb.db.c b/src/ssb.db.c
index 6f283885..6c36004a 100644
--- a/src/ssb.db.c
+++ b/src/ssb.db.c
@@ -182,7 +182,8 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
 	_tf_ssb_db_exec(db, "CREATE INDEX IF NOT EXISTS messages_timestamp_index ON messages (timestamp)");
 	_tf_ssb_db_exec(db, "CREATE INDEX IF NOT EXISTS messages_type_timestamp_index ON messages (content ->> 'type', timestamp)");
 	_tf_ssb_db_exec(db, "CREATE INDEX IF NOT EXISTS messages_size_by_author_index ON messages (author, length(content))");
-	_tf_ssb_db_exec(db, "CREATE INDEX IF NOT EXISTS messages_type_author_channel_index ON messages (content ->> 'type', author, content ->> 'channel')");
+	_tf_ssb_db_exec(db, "CREATE INDEX IF NOT EXISTS messages_type_author_channel_root_rowid_index ON messages (author, content ->> 'type', content ->> 'channel', content ->> 'root')");
+	_tf_ssb_db_exec(db, "DROP INDEX IF EXISTS messages_type_author_channel_index");
 	_tf_ssb_db_exec(db, "DROP INDEX IF EXISTS messages_author_id_index");
 	_tf_ssb_db_exec(db, "DROP INDEX IF EXISTS messages_by_author_index");
 	_tf_ssb_db_exec(db, "DROP INDEX IF EXISTS messages_timestamp_author_index");