diff --git a/src/data_transfer.cpp b/src/data_transfer.cpp
index e7937242c4e3b298bd0efff53fd1dbcab9f2c634..728a566be978ddb7675a082274fcc3b048f9a222 100644
--- a/src/data_transfer.cpp
+++ b/src/data_transfer.cpp
@@ -319,9 +319,9 @@ std::shared_ptr<DataTransfer>
 DataTransferFacade::Impl::createFileTransfer(const std::string& file_path,
                                              const std::string& display_name)
 {
-    std::lock_guard<std::mutex> lk {mapMutex_};
     auto id = generateUID();
     auto transfer = std::make_shared<FileTransfer>(id, file_path, display_name);
+    std::lock_guard<std::mutex> lk {mapMutex_};
     map_.emplace(id, transfer);
     return transfer;
 }
@@ -330,9 +330,9 @@ std::shared_ptr<IncomingFileTransfer>
 DataTransferFacade::Impl::createIncomingFileTransfer(const std::string& display_name,
                                                      std::size_t offset)
 {
-    std::lock_guard<std::mutex> lk {mapMutex_};
     auto id = generateUID();
     auto transfer = std::make_shared<IncomingFileTransfer>(id, display_name, offset);
+    std::lock_guard<std::mutex> lk {mapMutex_};
     map_.emplace(id, transfer);
     return transfer;
 }