diff --git a/include/opendht/utils.h b/include/opendht/utils.h
index 225d8e2f89fd3bf15d1ed28d67a95f28bbbd32b2..d7c1783c0d9f2efe8b3794b5bec921f9d6311fbb 100644
--- a/include/opendht/utils.h
+++ b/include/opendht/utils.h
@@ -153,6 +153,6 @@ unpackMsg(Blob b) {
 
 msgpack::unpacked unpackMsg(Blob b);
 
-msgpack::object* findMapValue(msgpack::object& map, const std::string& key);
+msgpack::object* findMapValue(const msgpack::object& map, const char* key);
 
 } // namespace dht
diff --git a/src/utils.cpp b/src/utils.cpp
index 458b044df19be9fbe980357ef5975c10c19d68f6..e27f2ced02ebe2647e63a3a4d579e2becc505814 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -270,11 +270,11 @@ unpackMsg(Blob b) {
 }
 
 msgpack::object*
-findMapValue(msgpack::object& map, const std::string& key) {
+findMapValue(const msgpack::object& map, const char* key) {
     if (map.type != msgpack::type::MAP) throw msgpack::type_error();
     for (unsigned i = 0; i < map.via.map.size; i++) {
         auto& o = map.via.map.ptr[i];
-        if (o.key.type == msgpack::type::STR && o.key.as<std::string>() == key)
+        if (o.key.type == msgpack::type::STR && std::strncmp(o.key.via.str.ptr, key, o.key.via.str.size) == 0)
             return &o.val;
     }
     return nullptr;
diff --git a/src/value.cpp b/src/value.cpp
index 0750a530c71c3875b713156af5223634cf4ca280..3f8298eb8f1c5a6d977d56a0bd0eaee5613f706d 100644
--- a/src/value.cpp
+++ b/src/value.cpp
@@ -87,20 +87,6 @@ ValueType::DEFAULT_STORE_POLICY(InfoHash, const std::shared_ptr<Value>& v, const
     return v->size() <= MAX_VALUE_SIZE;
 }
 
-msgpack::object*
-findMapValue(const msgpack::object& map, const std::string& key) {
-    if (map.type != msgpack::type::MAP) throw msgpack::type_error();
-    for (unsigned i = 0; i < map.via.map.size; i++) {
-        auto& o = map.via.map.ptr[i];
-        if(o.key.type != msgpack::type::STR)
-            continue;
-        if (o.key.as<std::string>() == key) {
-            return &o.val;
-        }
-    }
-    return nullptr;
-}
-
 size_t
 Value::size() const
 {