diff --git a/persistancelayer.cpp b/persistancelayer.cpp
index ca6a8028f221b6b326619cb393bfe2e9ea2cbaaf..b1b5ec228d7e11bff8bbd17538e28caca2000294 100755
--- a/persistancelayer.cpp
+++ b/persistancelayer.cpp
@@ -374,17 +374,17 @@ void PersistanceLayer::commit( )
 {
     // mMutex.lock();
 
+    /* if ( mCommitCounter ) {
+         mCommitCounter--;
+     }
+    */
     if ( mCommitCounter ) {
-        mCommitCounter--;
-    }
-
-    if ( mCommitCounter == 0 ) {
         if ( !mDb.commit() ) {
             qWarning() << mDb.lastError();
         }
 
-        counter++;
-        qDebug() << "db commits" << counter;
+        mCommitCounter = 0;
+
     }
 
     // mMutex.unlock();
@@ -1451,6 +1451,12 @@ void PersistanceLayer::init()
             throw std::runtime_error( mDb.lastError().text().toStdString() + "file used:" + filePath.toStdString() );
         }
 
+        commitTimer.setInterval( 3000 );
+        commitTimer.start();
+        connect( &commitTimer, &QTimer::timeout, [&]() {
+            commit();
+            commitTimer.start();
+        } );
         mDbReady = true;
         initShema();
         emit( ready() );
diff --git a/persistancelayer.h b/persistancelayer.h
index b2029f3b634ee36fc26bcb9f42e091b94f9024bf..f1b918607db4d6dd0c99bce8e1854a72e580151b 100755
--- a/persistancelayer.h
+++ b/persistancelayer.h
@@ -98,8 +98,7 @@ class PersistanceLayer : public QObject
         PersistanceLayer() {}
         QSqlDatabase mDb{ QSqlDatabase::addDatabase( "QSQLITE" )};
         QMimeDatabase mMimeDb;
-        QMutex mMutex;
-        QAtomicInt counter = 0;
+        QTimer commitTimer;
         void initShema();
 
         void upgradeSchema();