diff --git a/src/libstore/db.cc b/src/libstore/db.cc
index 7ded82ef1fe81e3669f802723fd2ad8a4859ad67..86509697a3c43ee43a84077c5e1a74fa9c81a830 100644
--- a/src/libstore/db.cc
+++ b/src/libstore/db.cc
@@ -451,7 +451,7 @@ void Database::enumTable(const Transaction & txn, TableId table,
             checkInterrupt();
             string data((char *) kt.get_data(), kt.get_size());
             if (!keyPrefix.empty() &&
-                data.compare(0, keyPrefix.size(), keyPrefix) != 0)
+                string(data, 0, keyPrefix.size()) != keyPrefix)
                 break;
             keys.push_back(data);
             flags = DB_NEXT;