diff --git a/include/opendht/network_engine.h b/include/opendht/network_engine.h
index 6fb1611fc153e1c6b79ac4477223f2a3d63e7ac4..a92f9ef8c24c4b4c1097b5fddc372f3eebe3ace8 100644
--- a/include/opendht/network_engine.h
+++ b/include/opendht/network_engine.h
@@ -68,14 +68,14 @@ public:
     DhtProtocolException(uint16_t code, const std::string& msg="", InfoHash failing_node_id={})
         : DhtException(msg), msg(msg), code(code), failing_node_id(failing_node_id) {}
 
-    std::string getMsg() const { return msg; }
+    const std::string& getMsg() const { return msg; }
     uint16_t getCode() const { return code; }
-    const InfoHash getNodeId() const { return failing_node_id; }
+    const InfoHash& getNodeId() const { return failing_node_id; }
 
 private:
     std::string msg;
     uint16_t code;
-    const InfoHash failing_node_id;
+    InfoHash failing_node_id;
 };
 
 struct ParsedMessage;