diff --git a/tools/dhtnode.cpp b/tools/dhtnode.cpp
index 0a0a9e027e718bacfb3b9367651bb1683ccb48a1..8c1da8e6cfd003ece5aa61231b1de7ac6898942c 100644
--- a/tools/dhtnode.cpp
+++ b/tools/dhtnode.cpp
@@ -153,8 +153,11 @@ main(int argc, char **argv)
             } else if (op == "b") {
                 try {
                     auto addr = splitPort(idstr);
-                    if (not addr.first.empty() and addr.second.empty())
-                        addr.second = std::to_string(DHT_DEFAULT_PORT);
+                    if (not addr.first.empty() and addr.second.empty()){
+                        std::stringstream ss;
+                        ss << DHT_DEFAULT_PORT;
+                        addr.second = ss.str();
+                    }
                     dht.bootstrap(addr.first.c_str(), addr.second.c_str());
                 } catch (const std::exception& e) {
                     std::cout << e.what() << std::endl;
diff --git a/tools/tools_common.h b/tools/tools_common.h
index c1a73d854c4e1087a70d3a1b50a46d768b4c7847..b2dbf89c6267d03e7b12a5736eedab210142d7d6 100644
--- a/tools/tools_common.h
+++ b/tools/tools_common.h
@@ -162,8 +162,11 @@ parseArgs(int argc, char **argv) {
         case 'b':
             if (optarg) {
                 params.bootstrap = splitPort((optarg[0] == '=') ? optarg+1 : optarg);
-                if (not params.bootstrap.first.empty() and params.bootstrap.second.empty())
-                    params.bootstrap.second = std::to_string(DHT_DEFAULT_PORT);
+                if (not params.bootstrap.first.empty() and params.bootstrap.second.empty()){
+                    std::stringstream ss;
+                    ss << DHT_DEFAULT_PORT;
+                    params.bootstrap.second = ss.str();
+                }
             }
             else
                 params.is_bootstrap_node = true;