diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index 3fd7ac04684c3cab834ffd7e945ccacc43f9ff32..5ebcfbec6285a7e7aaebe12738efd4fcdb6fed39 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -459,8 +459,12 @@ RingAccount::startOutgoingCall(const std::shared_ptr<SIPCall>& call, const std::
                 [weak_dev_call, ice, callvid, dev] (dht::IceCandidates&& msg) {
                     if (msg.id != callvid or msg.from != dev)
                         return true;
-                    RING_WARN("ICE request replied from DHT peer %s\n%s", dev.toString().c_str(),
-                              std::string(msg.ice_data.cbegin(), msg.ice_data.cend()).c_str());
+                    // remove unprintable characters
+                    auto iceData = std::string(msg.ice_data.cbegin(), msg.ice_data.cend());
+                    iceData.erase(std::remove_if(iceData.begin(), iceData.end(),
+                                                 [](unsigned char c){ return !std::isprint(c) && !std::isspace(c); }
+                                                ), iceData.end());
+                    RING_WARN("ICE request replied from DHT peer %s\nData: %s", dev.toString().c_str(), iceData.c_str());
                     if (auto call = weak_dev_call.lock()) {
                         call->setState(Call::ConnectionState::PROGRESSING);
                         if (!ice->start(msg.ice_data)) {