diff --git a/src/im/message_engine.cpp b/src/im/message_engine.cpp
index 9ca998825729246a117fb533a08c7d8016eae1c2..a3a4580ac81009b0163e3c96295abd3be1b91402 100644
--- a/src/im/message_engine.cpp
+++ b/src/im/message_engine.cpp
@@ -68,6 +68,9 @@ MessageEngine::onPeerOnline(const std::string& peer, bool retryOnTimeout)
 void
 MessageEngine::retrySend(const std::string& peer, bool retryOnTimeout)
 {
+    if (account_.getRegistrationState() != RegistrationState::REGISTERED) {
+        return;
+    }
     struct PendingMsg {
         MessageToken token;
         std::string to;