diff --git a/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java b/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
--- a/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
+++ b/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
@@ -78,10 +78,10 @@
 @SuppressWarnings("serial")
 public class PrintController extends HttpSecureAppServlet {
   private final Map<String, TemplateData[]> differentDocTypes = new HashMap<String, TemplateData[]>();
-  private PocData[] pocData;
   private boolean multiReports = false;
   private boolean archivedReports = false;
 
+
   @Override
   public void init(ServletConfig config) {
     super.init(config);
@@ -161,6 +161,8 @@
       throws IOException, ServletException {
     try {
 
+      String fullDocumentIdentifier = strDocumentId + documentType.getTableName();
+
       Map<String, Report> reports;
 
       // Checks are maintained in this way for mulithread safety
@@ -301,7 +303,7 @@
                 getComaSeparatedString(documentIds), reports);
           else
             createEmailOptionsPage(request, response, vars, documentType,
-                getComaSeparatedString(documentIds), reports, checks);
+                getComaSeparatedString(documentIds), reports, checks, fullDocumentIdentifier);
 
         } else if (vars.commandIn("ADD")) {
           if (request.getServletPath().toLowerCase().indexOf("print.html") != -1)
@@ -310,7 +312,7 @@
           else {
             final boolean showList = true;
             createEmailOptionsPage(request, response, vars, documentType,
-                getComaSeparatedString(documentIds), reports, checks);
+                getComaSeparatedString(documentIds), reports, checks, fullDocumentIdentifier);
           }
 
         } else if (vars.commandIn("DEL")) {
@@ -320,9 +322,10 @@
 
           seekAndDestroy(vector, documentToDelete);
           createEmailOptionsPage(request, response, vars, documentType,
-              getComaSeparatedString(documentIds), reports, checks);
+              getComaSeparatedString(documentIds), reports, checks, fullDocumentIdentifier);
 
         } else if (vars.commandIn("EMAIL")) {
+          PocData[] pocData = (PocData[]) vars.getSessionObject("pocData" + fullDocumentIdentifier);
           int nrOfEmailsSend = 0;
           for (final PocData documentData : pocData) {
             getEnvironentInformation(pocData, checks);
@@ -387,10 +390,12 @@
             }
           }
           request.getSession().removeAttribute("files");
+          vars.removeSessionValue("pocData" + fullDocumentIdentifier);
           createPrintStatusPage(response, vars, nrOfEmailsSend);
         } else if (vars.commandIn("UPDATE_TEMPLATE")) {
           JSONObject o = new JSONObject();
           try {
+            PocData[] pocData = (PocData[]) vars.getSessionObject("pocData" + fullDocumentIdentifier);
             final String templateId = vars.getRequestGlobalVariable("templates", "templates");
             final String documentId = pocData[0].documentId;
             for (final PocData documentData : pocData) {
@@ -826,11 +831,17 @@
   }
 
   void createEmailOptionsPage(HttpServletRequest request, HttpServletResponse response,
+	      VariablesSecureApp vars, DocumentType documentType, String strDocumentId,
+	      Map<String, Report> reports, HashMap<String, Boolean> checks) {
+	  createEmailOptionsPage(request, response, vars, documentType, strDocumentId, reports, checks);
+  }
+
+  void createEmailOptionsPage(HttpServletRequest request, HttpServletResponse response,
       VariablesSecureApp vars, DocumentType documentType, String strDocumentId,
-      Map<String, Report> reports, HashMap<String, Boolean> checks) throws IOException,
+      Map<String, Report> reports, HashMap<String, Boolean> checks, String fullDocumentIdentifier) throws IOException,
       ServletException {
     XmlDocument xmlDocument = null;
-    pocData = getContactDetails(documentType, strDocumentId);
+    PocData[] pocData = getContactDetails(documentType, strDocumentId);
     @SuppressWarnings("unchecked")
     Vector<java.lang.Object> vector = (Vector<java.lang.Object>) request.getSession().getAttribute(
         "files");
@@ -1122,6 +1133,8 @@
     xmlDocument.setParameter("inpArchive", vars.getStringParameter("inpArchive"));
     xmlDocument.setParameter("multCusCount", String.valueOf(numberOfCustomers));
     xmlDocument.setParameter("multSalesRepCount", String.valueOf(numberOfSalesReps));
+
+    vars.setSessionObject("pocData" + fullDocumentIdentifier, pocData);
     response.setContentType("text/html; charset=UTF-8");
     final PrintWriter out = response.getWriter();
     out.println(xmlDocument.print());
