diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
index 8dbbc9bd9a836d5b0713b0ea8be3c63f8a8a6b19..bb4c04700c6bc0eaf7286b09a1b5ab6f616b1d73 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_getDetails.xml
@@ -82,10 +82,10 @@ portal = context.getPortalObject()\n
 # Initialize total share\n
 gross_salary         = 0.0\n
 net_salary           = 0.0\n
+taxable_net_salary   = 0.0\n
 total_employer_share = 0.0\n
 total_employee_share = 0.0   # Alternative: total_employee_share = r_(gross_salary - net_salary)\n
-taxable_net_salary   = 0.0\n
-\n
+total_addendum       = 0.0\n
 \n
 \n
 ##############################################################################\n
@@ -288,8 +288,16 @@ for psl in context.objectValues(portal_type=\'Pay Sheet Line\'):\n
 \n
     ### Addendum group handling\n
     elif range_type.startswith("fixed/addendum"):\n
-      # TODO: support addendum\n
-      pass\n
+      # Ignore the base, rates and employer share\n
+      cell_value = r_(cell.getPrice())\n
+      if share_type == \'employee\':\n
+        updateSubLine( group_id   = cell_group_id\n
+                     , subline_id = cell_subline_id\n
+                     , property   = \'employee_share\'\n
+                     , value      = cell_value\n
+                     )\n
+        # Update total addendum\n
+        total_addendum = r_(total_addendum + cell_value)\n
 \n
     ### Default/Standard line group handling\n
     else:\n
@@ -344,6 +352,7 @@ details[\'totals\'][\'net_salary\']           = net_salary\n
 details[\'totals\'][\'taxable_net_salary\']   = taxable_net_salary\n
 details[\'totals\'][\'total_employer_share\'] = total_employer_share\n
 details[\'totals\'][\'total_employee_share\'] = total_employee_share\n
+details[\'totals\'][\'total_addendum\']       = total_addendum\n
 \n
 return details\n
 
@@ -401,9 +410,10 @@ return details\n
                             <string>portal</string>
                             <string>gross_salary</string>
                             <string>net_salary</string>
+                            <string>taxable_net_salary</string>
                             <string>total_employer_share</string>
                             <string>total_employee_share</string>
-                            <string>taxable_net_salary</string>
+                            <string>total_addendum</string>
                             <string>details</string>
                             <string>getPSLGroupIdList</string>
                             <string>groupExist</string>
diff --git a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPaySheetTransactionAsPDF.xml b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPaySheetTransactionAsPDF.xml
index 71b589318c63012b606fa0b9e85054bda2230ef0..163c0affb8f864b196d1892c25bc94243f9da1d3 100644
--- a/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPaySheetTransactionAsPDF.xml
+++ b/bt5/erp5_payroll/SkinTemplateItem/portal_skins/erp5_payroll/PaySheetTransaction_viewPaySheetTransactionAsPDF.xml
@@ -55,7 +55,8 @@
   tal:define="details               python: here.PaySheetTransaction_getDetails();\n
               start_date            python: here.getStartDate();\n
               boldstyle             python: \'(\\\'FONT\\\', \\\'Helvetica-Bold\\\', 7)\';\n
-              GROSS_SALARY_GROUP_ID python: \'gross\'">\n
+              GROSS_SALARY_GROUP_ID python: \'gross\';\n
+              ADDENDUM_GROUP_ID     python: \'addendum\'">\n
 \n
   <title>Pay Sheet</title>\n
   <author>Nexedi ERP5</author>\n
@@ -112,7 +113,7 @@
       </tr>\n
 \n
       <tal:block repeat="group python: details[\'groups\']">\n
-        <tal:block condition="python: group[\'id\'] != GROSS_SALARY_GROUP_ID">\n
+        <tal:block condition="python: group[\'id\'] not in [GROSS_SALARY_GROUP_ID, ADDENDUM_GROUP_ID]">\n
           <tr tal:attributes="stylecmd boldstyle">\n
             <td tal:content="python: group[\'title\']"> </td>\n
             <td> </td>\n
@@ -191,6 +192,55 @@
       </tr>\n
     </table>\n
 \n
+    <tal:block repeat="group python: details[\'groups\']">\n
+      <table splitbyrow="1" rowheight=\'0.4cm\' repeatrows="1" repeatcols="0" style="decompte"\n
+              tal:condition="python: group[\'id\'] == ADDENDUM_GROUP_ID">\n
+        <tr>\n
+          <td colwidth="4.318cm">Nature</td>\n
+          <td colwidth="3.81cm">Base</td>\n
+          <td colwidth="1.524cm"> </td>\n
+          <td colwidth="2.77cm"> </td>\n
+          <td colwidth="2.288cm"> </td>\n
+          <td colwidth="2.397cm"> </td>\n
+          <td colwidth="1.959cm">Montant</td>\n
+        </tr>\n
+        <tr tal:attributes="stylecmd boldstyle">\n
+          <td tal:content="python: group[\'title\']"> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+        </tr>\n
+        <tr tal:repeat="line python: group[\'sublines\']" stylecmd="(\'LEFTPADDING\',8)">\n
+          <td><tal:block content="python: \'   \' + line[\'service_title\']"/> </td>\n
+          <td><tal:block content="python: line[\'salary_range_title\']"/> </td>\n
+          <td><tal:block content="python: line[\'base\']"\n
+                        condition="python: line[\'base\'] != None"/> </td>\n
+          <td><tal:block content="python: line[\'employer_rate\']"\n
+                        condition="python: line[\'employer_rate\'] != None"/> </td>\n
+          <td><tal:block content="python: line[\'employer_share\']"\n
+                        condition="python: line[\'employer_share\'] != None"/> </td>\n
+          <td><tal:block content="python: line[\'employee_rate\']"\n
+                        condition="python: line[\'employee_rate\'] != None"/> </td>\n
+          <td><tal:block content="python: line[\'employee_share\']"\n
+                        condition="python: line[\'employee_share\'] != None"/> </td>\n
+        </tr>\n
+        <tr tal:attributes="stylecmd boldstyle">\n
+          <td>Total</td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td> </td>\n
+          <td><tal:block replace="python: details[\'totals\'][\'total_addendum\']"\n
+                          condition="python: details[\'totals\'].has_key(\'total_addendum\')"/> </td>\n
+        </tr>\n
+      </table>\n
+    </tal:block>\n
+\n
+    <!-- This table act as a spacer -->\n
     <table rowheight="0.6cm"><tr><td> </td></tr></table>\n
 \n
     <table style="cumul_conges">\n
diff --git a/bt5/erp5_payroll/bt/change_log b/bt5/erp5_payroll/bt/change_log
index 466814b0388247a2ee27a26e747ce9af331b19e0..a8949b25ac0dfd2641483be04267997413530db4 100644
--- a/bt5/erp5_payroll/bt/change_log
+++ b/bt5/erp5_payroll/bt/change_log
@@ -1,5 +1,7 @@
 2006-10-24 Kevin
 * Support dynamic update of gross salary calculation on pay sheet preview.
+* Support addendum on paysheets.
+* Update Pay Sheet PDF rendering to show addendum.
 
 2006-10-23 Kevin
 * Change category structure to support additional lines beside base salary to constitute the gross salary. Now the gross salary can be composed of several lines, variable or fixed.
diff --git a/bt5/erp5_payroll/bt/revision b/bt5/erp5_payroll/bt/revision
index b44fe09a7a833a4736542e3a089713d34eb4abaa..9cd72aa941214d4cb8522dda34eb12cf878e3e8b 100644
--- a/bt5/erp5_payroll/bt/revision
+++ b/bt5/erp5_payroll/bt/revision
@@ -1 +1 @@
-65
\ No newline at end of file
+72
\ No newline at end of file
diff --git a/bt5/erp5_payroll/bt/version b/bt5/erp5_payroll/bt/version
index 106528b75f19fe921d468a355a15765186939827..99a25fc455a707b1d714ccdcda023fe40b217d5a 100644
--- a/bt5/erp5_payroll/bt/version
+++ b/bt5/erp5_payroll/bt/version
@@ -1 +1 @@
-0.1.15
\ No newline at end of file
+0.1.16
\ No newline at end of file