diff --git a/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java b/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
index 07146c68d4..208311100c 100644
--- a/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
+++ b/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
@@ -75,7 +75,6 @@ import net.sf.jasperreports.export.SimplePdfExporterConfiguration;
 @SuppressWarnings("serial")
 public class PrintController extends HttpSecureAppServlet {
   private final Map<String, TemplateData[]> differentDocTypes = new HashMap<String, TemplateData[]>();
-  private boolean multiReports = false;
   private boolean archivedReports = false;
   private static final String PRINT_PATH = "print.html";
   private static final String PRINT_OPTIONS_PATH = "printoptions.html";
@@ -92,7 +91,6 @@ public class PrintController extends HttpSecureAppServlet {
   public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws IOException, ServletException {
     final VariablesSecureApp vars = new VariablesSecureApp(request);
-
     DocumentType documentType = DocumentType.UNKNOWN;
     String sessionValuePrefix = null;
     String strDocumentId = null;
@@ -170,7 +168,7 @@ public class PrintController extends HttpSecureAppServlet {
         log4j.debug("Number of documents selected: " + documentIds.length);
       }
 
-      multiReports = (documentIds.length > 1);
+      boolean multiReports = (documentIds.length > 1);
 
       reports = (HashMap<String, Report>) vars.getSessionObject(sessionValuePrefix + ".Documents");
       final ReportManager reportManager = new ReportManager(globalParameters.strFTPDirectory,
@@ -196,7 +194,7 @@ public class PrintController extends HttpSecureAppServlet {
         for (int i = 0; i < documentIds.length; i++) {
           String documentId = documentIds[i];
           report = buildReport(response, vars, documentId, reportManager, documentType,
-              Report.OutputTypeEnum.PRINT);
+              Report.OutputTypeEnum.PRINT, multiReports);
           try {
             jasperPrint = reportManager.processReport(report, vars);
             jrPrintReports.add(jasperPrint);
@@ -227,7 +225,7 @@ public class PrintController extends HttpSecureAppServlet {
         for (int index = 0; index < documentIds.length; index++) {
           String documentId = documentIds[index];
           report = buildReport(response, vars, documentId, reportManager, documentType,
-              OutputTypeEnum.ARCHIVE);
+              OutputTypeEnum.ARCHIVE, multiReports);
           buildReport(response, vars, documentId, reports, reportManager);
           try {
             jasperPrint = reportManager.processReport(report, vars);
@@ -396,6 +394,10 @@ public class PrintController extends HttpSecureAppServlet {
 
   public void printReports(HttpServletResponse response, Collection<JasperPrint> jrPrintReports,
       Collection<Report> reports, boolean directPrint) {
+    printReports(response, jrPrintReports, reports, directPrint, false);
+  }
+  public void printReports(HttpServletResponse response, Collection<JasperPrint> jrPrintReports,
+      Collection<Report> reports, boolean directPrint, boolean multiReports) {
     ServletOutputStream os = null;
     String filename = "";
     Map<Object, Object> parameters = new HashMap<Object, Object>();
@@ -482,7 +484,7 @@ public class PrintController extends HttpSecureAppServlet {
       String filename = "";
       boolean createBookmarks = true;
       SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
-      if (reports.length == 1) {
+      if (reports.length == 1 && jrPrintReports.size() == 1) {
         filename = reports[0].getFilename();
         createBookmarks = false;
       } else if (reports.length > 1) {
@@ -514,7 +516,7 @@ public class PrintController extends HttpSecureAppServlet {
 
   public Report buildReport(HttpServletResponse response, VariablesSecureApp vars,
       String strDocumentId, final ReportManager reportManager, DocumentType documentType,
-      OutputTypeEnum outputType) {
+      OutputTypeEnum outputType, boolean multiReports) {
     return reportSender.buildReport(vars.getLanguage(), strDocumentId, multiReports, reportManager,
         documentType, outputType, "default");
   }
