diff --git a/product/ERP5Form/PDFForm.py b/product/ERP5Form/PDFForm.py
index 21ee35209050accdf5d5a40ab04e13a9983c9efc..a990eb79101e4ed25f2b13c8ed81397f476abac6 100755
--- a/product/ERP5Form/PDFForm.py
+++ b/product/ERP5Form/PDFForm.py
@@ -381,7 +381,9 @@ class PDFForm(File):
   def generatePDF(self, REQUEST=None, RESPONSE=None, *args, **kwargs) :
     """ generates the PDF with form filled in """
     values = self.calculateCellValues(REQUEST, *args, **kwargs)
-    context = {'here' : self.aq_parent, 'request' : REQUEST}
+    context = { 'here' : self.aq_parent,
+                'context' : self.aq_parent,
+                'request' : REQUEST }
     if hasattr(self, "__format_method__") \
             and self.__format_method__ not in ('', None) :
       compiled_tales = getEngine().compile(self.__format_method__)
@@ -395,12 +397,12 @@ class PDFForm(File):
       else :
         LOG("PDFForm", PROBLEM, 'format method (%r) is not callable' % format_method)
     data = str(self.data)
+    pdf = self.pdftk.fillFormWithDict(data, values)
     if self.__page_range__ not in ('', None) :
       compiled_tales = getEngine().compile(self.__page_range__)
       page_range = getEngine().getContext(context).evaluate(compiled_tales)
       if page_range :
-        data = self.pdftk.catPages(str(self.data), page_range)
-    pdf = self.pdftk.fillFormWithDict(data, values)
+        pdf = self.pdftk.catPages(pdf, page_range)
     if RESPONSE :
       RESPONSE.setHeader('Content-Type', 'application/pdf')
       RESPONSE.setHeader('Content-Length', len(pdf))
@@ -454,6 +456,14 @@ class PDFForm(File):
     names.sort()
     return names
 
+  security.declareProtected(Permissions.ManagePortal, 'deleteCell')
+  def deleteCell(self, cell_name):
+    """ Delete a cell. 
+    As setCellTALES add the cell if it is not present, we must have a
+    way to remove cells created by mistake. """
+    del self.all_cells[cell_name]
+    del self.cells[cell_name]
+  
   security.declareProtected(Permissions.ManagePortal, 'setCellTALES')
   def setCellTALES(self, cell_name, TALES):
     """ changes the TALES expression that will be used to evaluate