diff --git a/cups-pdf-postprocess.py b/cups-pdf-postprocess.py
index bbeacfcdd0cc2684acf149189e8fa66d126fca18..b51b47fb9fe36557eb1655df83b988c116e59471 100755
--- a/cups-pdf-postprocess.py
+++ b/cups-pdf-postprocess.py
@@ -228,12 +228,13 @@ class CPP(QWidget):
       pipeline.append([ "%s/pdfcrop_wrapper.sh" % DIR,
                         "--margin", margin, "-", "/dev/stdout" ])
 
-    if self._pdfbook.isChecked():
-      pipeline.append([ "pdfbook", "/dev/stdin", "-o", "/dev/stdout" ])
-
     if self._compact.isChecked():
+      self._duplex.setCurrentIndex(1)
       pipeline.append([ "%s/print_compact.sh" % DIR,
                         "%i" % self._compact_copies.value() ])
+    elif self._pdfbook.isChecked():
+      self._duplex.setCurrentIndex(1)
+      pipeline.append([ "pdfbook", "/dev/stdin", "-o", "/dev/stdout" ])
 
     if self._printer.currentData() is self._save_as_file:
       f = QFileDialog.getSaveFileName(self, 'Save as ...')
@@ -243,7 +244,7 @@ class CPP(QWidget):
     else:
       cmd = self._printer.currentData().copy()
       cmd += [ "-o", self._duplex.currentData() ]
-      if self._staple.isChecked():
+      if self._pdfbook.isChecked() and self._staple.isChecked():
         cmd += [ "-o", "XRFold=BiFoldStaple" ]
       cmd.append("-")
       pipeline.append(cmd)