diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index d3ca82a07b73a72e3d22a1d33d4861483eeaa403..7583db413b011b133dc5692e2256983b2a91baa2 100644
--- a/src/dhtrunner.cpp
+++ b/src/dhtrunner.cpp
@@ -474,7 +474,7 @@ DhtRunner::loop_()
             if (clock::now() - pck.received > RX_QUEUE_MAX_DELAY)
                 dropped++;
             else
-                wakeup = dht->periodic(pck.data.data(), pck.data.size()-1, pck.from);
+                wakeup = dht->periodic(pck.data.data(), pck.data.size(), pck.from);
             received.pop();
         }
     } else {
@@ -634,7 +634,7 @@ DhtRunner::startNetwork(const SockAddr sin4, const SockAddr sin6)
                                 std::cerr << "Dropping packet: queue is full!" << std::endl;
                                 rcv.pop();
                             }
-                            rcv.emplace(ReceivedPacket {Blob {buf.begin(), buf.begin()+rc+1}, SockAddr(from, from_len), clock::now()});
+                            rcv.emplace(ReceivedPacket {Blob {buf.begin(), buf.begin()+rc}, SockAddr(from, from_len), clock::now()});
                         }
                         cv.notify_all();
                     } else if (rc == -1) {