diff --git a/common/src/leap/soledad/common/couch/__init__.py b/common/src/leap/soledad/common/couch/__init__.py
index 06c94c274831d0e71df19a837fcfe3d6d0c39285..be30210c0111a5551aea8bba2b23315f6be5b468 100644
--- a/common/src/leap/soledad/common/couch/__init__.py
+++ b/common/src/leap/soledad/common/couch/__init__.py
@@ -751,8 +751,6 @@ class CouchDatabase(object):
             }
             parts.append(conflicts)
 
-        self._allocate_new_generation(doc.doc_id, transaction_id)
-
         # build the couch document
         couch_doc = {
             '_id': doc.doc_id,
@@ -802,6 +800,8 @@ class CouchDatabase(object):
             last_gen, last_trans_id = self.batch_generation
             self.batch_generation = (last_gen + 1, transaction_id)
 
+        self._allocate_new_generation(doc.doc_id, transaction_id)
+
     def _new_resource(self, *path):
         """
         Return a new resource for accessing a couch database.