diff --git a/product/ERP5/Tool/IdTool.py b/product/ERP5/Tool/IdTool.py
index f3d80d7d0ec0d79a2e6d88e404b535705be6a269..9033a5c78f4e3692d99acad3f3a894a8f0c9013f 100644
--- a/product/ERP5/Tool/IdTool.py
+++ b/product/ERP5/Tool/IdTool.py
@@ -151,7 +151,8 @@ class IdTool(BaseTool):
 
   security.declareProtected(Permissions.AccessContentsInformation,
                             'generateNewLengthIdList')
-  def generateNewLengthIdList(self, id_group=None, id_count=1, default=None):
+  def generateNewLengthIdList(self, id_group=None, id_count=1, default=None,
+                              store=1):
     """
       Generates a list of Ids.
       The ids are generated using mysql and then stored in a Length object in a
@@ -161,6 +162,9 @@ class IdTool(BaseTool):
       some IDs might be skipped because of failed transactions.
       "Length" is because the id is stored in a python object inspired by
       BTrees.Length. It doesn't have to be a length.
+
+      store : if we want do store the new id into the zodb, we want it
+              by default
     """
     if getattr(self, 'dict_length_ids', None) is None:
       # Length objects are stored in a persistent mapping: there is one
@@ -191,16 +195,18 @@ class IdTool(BaseTool):
     new_id = result[0]['LAST_INSERT_ID()']
     if self.dict_length_ids.get(id_group) is None:
       self.dict_length_ids[id_group] = Length(new_id)
-    self.dict_length_ids[id_group].set(new_id)
+    if store:
+      self.dict_length_ids[id_group].set(new_id)
     return range(new_id - id_count, new_id)
 
   security.declareProtected(Permissions.AccessContentsInformation,
                             'generateNewLengthId')
-  def generateNewLengthId(self, id_group=None, default=None):
+  def generateNewLengthId(self, id_group=None, default=None, store=1):
     """
       Generates an Id.
       See generateNewLengthIdList documentation for details.
     """
-    return self.generateNewLengthIdList(id_group=id_group, id_count=1, default=default)[0]
+    return self.generateNewLengthIdList(id_group=id_group, id_count=1, 
+        default=default, store=store)[0]
 
 InitializeClass(IdTool)