diff --git a/src/certificatemodel.cpp b/src/certificatemodel.cpp
index 4a4e1a73d2c88fe096d5368b15446344e867981a..543e1d868be790340da26ca643c33f74dd5dbc9d 100644
--- a/src/certificatemodel.cpp
+++ b/src/certificatemodel.cpp
@@ -629,7 +629,11 @@ Certificate* CertificateModel::getCertificateFromPath(const QString& path, Accou
    if (!cert) {
       cert = new Certificate(path, Certificate::Type::NONE);
       cert->setCollection(m_pFallbackDaemonCollection);
+
+      { // mutex
+      QMutexLocker(&d_ptr->m_CertInsertion);
       d_ptr->m_hCertificates[path.toLatin1()] = cert;
+      } // mutex
 
       //Add it to the model
       d_ptr->addToTree(cert,a);
@@ -656,7 +660,11 @@ Certificate* CertificateModel::getCertificateFromPath(const QString& path, Certi
    if (!cert) {
       cert = new Certificate(path, type);
       cert->setCollection(m_pFallbackDaemonCollection);
+
+      { // mutex
+      QMutexLocker(&d_ptr->m_CertInsertion);
       d_ptr->m_hCertificates[path.toLatin1()] = cert;
+      } // mutex
 
       //Add it to the model
       d_ptr->addToTree(cert);
@@ -672,7 +680,11 @@ Certificate* CertificateModel::getCertificateFromId(const QString& id, Account*
    //The certificate is not loaded yet
    if (!cert) {
       cert = new Certificate(id);
+
+      { // mutex
+      QMutexLocker(&d_ptr->m_CertInsertion);
       d_ptr->m_hCertificates[id.toLatin1()] = cert;
+      } // mutex
 
       if ((!a) && (!category.isEmpty())) {
          CertificateNode* cat = d_ptr->m_hStrToCat.value(category);
diff --git a/src/private/certificatemodel_p.h b/src/private/certificatemodel_p.h
index 163e84e7d2f6b4f800c89593b39b9591ba435215..c0ff21aca709d74a2de30119cccbba84e0b81b7e 100644
--- a/src/private/certificatemodel_p.h
+++ b/src/private/certificatemodel_p.h
@@ -57,6 +57,7 @@ public:
    QHash<QString,Certificate*>      m_hCertificates     ;
    CertificateNode*                 m_pDefaultCategory  ;
    QMutex                           m_CertLoader        ;
+   QMutex                           m_CertInsertion     ;
    int                              m_GroupCounter      ;
    QHash<const Account*,CertificateNode*> m_hAccToCat   ;
    QHash<const QString&,CertificateNode*> m_hStrToCat   ;