diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp
index 0acec04bddeedc578a19cdcc8aca9c3e64c5c679..81bedf9eaa4a4de1feee82c0ea3dc0522314b444 100644
--- a/src/conversationmodel.cpp
+++ b/src/conversationmodel.cpp
@@ -2285,6 +2285,9 @@ ConversationModelPimpl::acceptTransfer(const QString& convUid, uint64_t interact
         destinationDir += "/";
     }
 #endif
+    QDir dir = QFileInfo(destinationDir + path).absoluteDir();
+    if (!dir.exists())
+        dir.mkpath(".");
     auto acceptedFilePath = lrc.getDataTransferModel().accept(interactionId, destinationDir + path, 0);
     storage::updateInteractionBody(db, interactionId, acceptedFilePath);
     storage::updateInteractionStatus(db, interactionId, interaction::Status::TRANSFER_ACCEPTED);