diff --git a/product/ERP5/Document/PaySheetModel.py b/product/ERP5/Document/PaySheetModel.py
index a861448d9e780afc62ab378d1f8a3e01d183cff0..62ceeee554c2b31be45c578735e78fc988988907 100644
--- a/product/ERP5/Document/PaySheetModel.py
+++ b/product/ERP5/Document/PaySheetModel.py
@@ -92,7 +92,6 @@ class PaySheetModel(TradeCondition, XMLMatrix):
 
       return reference_list
 
-
     def getInheritanceModelReferenceDict(self, model_reference_dict,
         model_list, portal_type_list, reference_list):
       '''
@@ -112,7 +111,8 @@ class PaySheetModel(TradeCondition, XMLMatrix):
             reference_list.append(reference)
             unique_list.append(reference)
 
-        model_reference_dict[model.getRelativeUrl()]=unique_list
+        if unique_list != []:
+          model_reference_dict[model.getRelativeUrl()]=unique_list
 
         new_model_list = model.getSpecialiseValueList()
         model_reference_dict = self.getInheritanceModelReferenceDict(\
@@ -121,17 +121,3 @@ class PaySheetModel(TradeCondition, XMLMatrix):
             portal_type_list=portal_type_list,
             reference_list=reference_list,)
       return model_reference_dict
-
-    def copyInheritanceSubObjects(self, model_reference_dict):
-      '''
-        copy all sub objects containing in the dict into the current model
-      '''
-      key_list = model_reference_dict.keys()
-
-      for key in key_list:
-        id_list = model_reference_dict[key]
-        model = self.getPortalObject().restrictedTraverse(key)
-        if model is None:
-          LOG("copyInheritanceSubObjects,", 0, "can't find model %s" % key)
-        copied_data = model.manage_copyObjects(ids=id_list)
-        self.manage_pasteObjects(copied_data)
diff --git a/product/ERP5/Document/PaySheetTransaction.py b/product/ERP5/Document/PaySheetTransaction.py
index fe7123bd090f1a3a40f935a0626fb24bd7053452..665bac80ed657824211765cbc1cea81ef210b3cd 100644
--- a/product/ERP5/Document/PaySheetTransaction.py
+++ b/product/ERP5/Document/PaySheetTransaction.py
@@ -491,3 +491,17 @@ class PaySheetTransaction(Invoice):
       post_calculation_script()
 
     return pay_sheet_line_list
+
+  def copyInheritanceSubObjects(self, model_reference_dict):
+    '''
+      copy all sub objects containing in the dict into the current paysheet
+    '''
+    key_list = model_reference_dict.keys()
+
+    for key in key_list:
+      id_list = model_reference_dict[key]
+      model = self.getPortalObject().restrictedTraverse(key)
+      if model is None:
+        LOG("copyInheritanceSubObjects,", 0, "can't find model %s" % key)
+      copied_data = model.manage_copyObjects(ids=id_list)
+      self.manage_pasteObjects(copied_data)