diff --git a/include/class.pdf.php b/include/class.pdf.php
index 370462623bfb28df4043fc54c84237c94e708dca..2257dcc17aa6641fabeeac32a3fcecc28bd7b2c0 100644
--- a/include/class.pdf.php
+++ b/include/class.pdf.php
@@ -17,7 +17,6 @@
 define('THIS_DIR', str_replace('\\\\', '/', realpath(dirname(__FILE__))) . '/'); //Include path..
 define('FPDF_DIR', THIS_DIR . 'fpdf/');
 define('FPDF_FONTPATH', FPDF_DIR . 'font/'); //fonts directory.
-//session_cache_limiter('private');
 require (FPDF_DIR . 'fpdf.php');
 
 class Ticket2PDF extends FPDF
@@ -29,10 +28,11 @@ class Ticket2PDF extends FPDF
 	
     var $ticket = null;
 
-	function Ticket2PDF($ticket, $notes=false) {
+	function Ticket2PDF($ticket, $psize='Letter', $notes=false) {
         global $thisstaff;
 
-        parent::FPDF('P', 'mm', $thisstaff->getDefaultPaperSize());
+
+        parent::FPDF('P', 'mm', $psize);
 
         $this->ticket = $ticket;
 
@@ -184,7 +184,7 @@ class Ticket2PDF extends FPDF
                         'R'=>array(255, 224, 179),
                         'N'=>array(250, 250, 210));
         //Get ticket thread
-        if(($entries = $ticket->getThreadWithNotes())) { 
+        if(($entries = $ticket->getThread(($this->includenotes)))) { 
             foreach($entries as $entry) {
 
                 $color = $colors[$entry['thread_type']];
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 80b6a60ac4a2b989fddb2fb3ced7ab6e98a7d7ad..8d8f2065eddc1da25e93f140d68de3c90f4e0323 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -1552,10 +1552,12 @@ class Ticket{
     }
 
     //Print ticket... export the ticket thread as PDF.
-    function pdfExport() {
-        $pdf = new Ticket2PDF($this, true);
+    function pdfExport($psize='Letter', $notes=false) {
+        $pdf = new Ticket2PDF($this, $psize, $notes);
         $name='Ticket-'.$this->getExtId().'.pdf';
         $pdf->Output($name, 'I');
+        //Remember what the user selected - for autoselect on the next print.
+        $_SESSION['PAPER_SIZE'] = $psize;
         exit;
     }
 
diff --git a/include/staff/ticket-view.inc.php b/include/staff/ticket-view.inc.php
index cb7db2a539b2ff01bdbe31a3012cb676350fc332..a63eea939dfd832c5a91cc0e0442946d8dc3a5ca 100644
--- a/include/staff/ticket-view.inc.php
+++ b/include/staff/ticket-view.inc.php
@@ -40,8 +40,12 @@ if($ticket->isOverdue())
                 <a href="tickets.php?id=<?php echo $ticket->getId(); ?>" title="Reload" class="reload">Reload</a></h2>
         </td>
         <td width="50%" class="right_align">
-            <a href="tickets.php?id=<?php echo $ticket->getId(); ?>&a=print" title="Print Ticket" class="print">Print Ticket</a>
-            <a href="tickets.php?id=<?php echo $ticket->getId(); ?>&a=edit" title="Edit Ticket" class="edit">Edit Ticket</a>
+            <a href="tickets.php?id=<?php echo $ticket->getId(); ?>&a=print" title="Print Ticket" class="print" id="ticket-print">Print Ticket</a>
+            <?php
+            if($thisstaff->canEditTickets()) { ?>
+             <a href="tickets.php?id=<?php echo $ticket->getId(); ?>&a=edit" title="Edit Ticket" class="edit">Edit Ticket</a>
+            <?php
+            } ?>
         </td>
     </tr>
 </table>
@@ -598,4 +602,37 @@ if(!$cfg->showNotesInline()) { ?>
     <?php
     } ?>
 </div>
+<div style="display:none;" id="print-options">
+    <h3>Ticket Print Options</h3>
+    <a class="close" href="">&times;</a>
+    <form action="tickets.php?id=<?php echo $ticket->getId(); ?>" method="post" id="print-form" name="print-form">
+        <input type="hidden" name="a" value="print">
+        <input type="hidden" name="id" value="<?php echo $ticket->getId(); ?>">
+        <fieldset class="notes">
+            <label for="notes">Print Notes:</label>
+            <input type="checkbox" id="notes" name="notes" value="1"> Print <b>Internal</b> Notes/Comments
+        </fieldset>
+        <fieldset>
+            <label for="psize">Paper Size:</label>
+            <select id="psize" name="psize">
+                <option value="">&mdash; Select Print Paper Size &mdash;</option>
+                <?php
+                  $options=array('Letter', 'Legal', 'A4', 'A3');
+                  $psize =$_SESSION['PAPER_SIZE']?$_SESSION['PAPER_SIZE']:$thisstaff->getDefaultPaperSize();
+                  foreach($options as $v) {
+                      echo sprintf('<option value="%s" %s>%s</option>',
+                                $v,($psize==$v)?'selected="selected"':'', $v);
+                  }
+                ?>
+            </select>
+        </fieldset>
+        <p class="centered">
+            <span class="buttons">
+                <input type="submit" value="Print">
+                <input type="reset" value="Reset">
+                <input type="button" value="Cancel" class="close">
+            </span>
+         </p>
+    </form>
+</div>
 <script type="text/javascript" src="js/ticket.js"></script>
diff --git a/scp/css/scp.css b/scp/css/scp.css
index b16510c017d732db511eb4b23ecc26e7ee8689f4..7e42b1ac6d7b74bde3c7fe84d6d0d47d2cdf3448 100644
--- a/scp/css/scp.css
+++ b/scp/css/scp.css
@@ -1140,7 +1140,7 @@ time {
     margin-right:20px;
 }
 
-/* Advanced Ticket Search */
+/* Advanced Search & Ticket print options */
 
 #search_overlay {
     background:#000;
@@ -1149,13 +1149,13 @@ time {
     z-index:1000;
 }
 
-#advanced-search, #advanced-search * {
+#advanced-search, #advanced-search *, #print-options, #print-options * {
     box-sizing: border-box;
     -moz-box-sizing: border-box;
     -webkit-box-sizing: border-box;
 }
 
-#advanced-search {
+#advanced-search, #print-options {
     position:absolute;
     padding:1em;
     width:640px;
@@ -1166,7 +1166,12 @@ time {
     z-index:1200;
 }
 
-#advanced-search h3 {
+#print-options {
+    width:500px;
+    height:250px;
+}
+
+#advanced-search h3, #print-options h3 {
     color:#2a67ac;
     font-size:20px;
     margin:0;
@@ -1174,14 +1179,14 @@ time {
     display:inline-block;
 }
 
-#advanced-search a.close {
+#advanced-search a.close, #print-options a.close {
     display:inline-block;
     float:right;
     font-size:16px;
     color:#777;
 }
 
-#advanced-search form {
+#advanced-search form, #print-options form {
     clear:both;
     padding:2em 0 1em 0;
     width:100%;
@@ -1191,31 +1196,31 @@ time {
     display:none;
 }
 
-#advanced-search fieldset {
+#advanced-search fieldset, #print-options fieldset {
     margin:0;
     padding:0.25em 0;
     border:none;
     overflow:hidden;
 }
 
-#advanced-search label {
+#advanced-search label, #print-options label {
     width:100px;
     display:inline-block;
     text-align:right;
     padding:10px;
 }
 
-#advanced-search fieldset input {
+#advanced-search fieldset input, #print-options fieldset input {
     border:1px solid #ccc;
     background:#fff;
 }
 
-#advanced-search fieldset select {
+#advanced-search fieldset select, #print-options fieldset select {
     width:170px;
     display:inline-block;
 }
 
-#advanced-search fieldset span {
+#advanced-search fieldset span, #print-options fieldset span {
     width:50px;
     display:inline-block;
     text-align:center;
@@ -1251,7 +1256,10 @@ time {
 
 #advanced-search input[type="submit"],
 #advanced-search input[type="reset"],
-#advanced-search input[type="button"]
+#advanced-search input[type="button"],
+#print-options input[type="submit"],
+#print-options input[type="reset"],
+#print-options input[type="button"]
 {
     display:inline-block;
     margin:0;
@@ -1264,7 +1272,10 @@ time {
     color: #333;
 }
 
-#advanced-search input[type="reset"], #advanced-search input[type="button"] {
+#advanced-search input[type="reset"],
+#advanced-search input[type="button"],
+#print-options input[type="reset"],
+#print-options input[type="button"] { 
     opacity:0.7;
 }
 
@@ -1332,7 +1343,7 @@ ul.progress li.no small {color:red;}
 #bar.error { background: #ffd; text-align: center; color: #a00; font-weight: bold; }
 
 /* Overlay */
-#overlay { display: none; position: fixed; background: #000; z-index: 2000; }
+#overlay { display: none; position: fixed; background: #000; z-index: 1000; }
 
 #loading { padding: 10px 10px 10px 60px; width: 300px; height: 100px; background: url('../images/ajax-loader.gif?1312925608') 10px 50% no-repeat white; position: fixed; display: none; z-index: 3000; }
 #loading h4 { margin: 3px 0 0 0; padding: 0; color: #d80; }
diff --git a/scp/js/scp.js b/scp/js/scp.js
index b31f673f0d9f7119768846bae078d11770ed18fc..f5db29a936089b72c2d91066c645de3db3af750a 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -245,7 +245,7 @@ $(document).ready(function(){
     });
 
     /* advanced search */
-    $("#overlay").css({
+    $("#overlay, #search_overlay").css({
         opacity : 0.3,
         top     : 0,
         left    : 0,
@@ -261,14 +261,14 @@ $(document).ready(function(){
     $('#go-advanced').click(function(e) {
         e.preventDefault();
         $('#result-count').html('');
-        $('#overlay').show();
+        $('#search_overlay').show();
         $('#advanced-search').show();
     });
 
     $('#advanced-search').delegate('a.close, input.close', 'click', function(e) {
         e.preventDefault();
         $('#advanced-search').hide()
-        $('#overlay').hide();
+        $('#search_overlay').hide();
     }).delegate('#status', 'change', function() {
         switch($(this).val()) {
             case 'closed':
diff --git a/scp/js/ticket.js b/scp/js/ticket.js
index 22a97d623bd34d0ef664b012c1cd040e9f55c15e..6dab24ded5534fed9777b7fa62fac42c3f119e51 100644
--- a/scp/js/ticket.js
+++ b/scp/js/ticket.js
@@ -316,6 +316,25 @@ jQuery(function($) {
             }
         }
      });
+    
+    //Ticket print options
+    $("#print-options").css({
+        top  : ($(window).height() /5),
+        left : ($(window).width() / 2 - 300)
+    });
+
+    $('a#ticket-print').click(function(e) {
+        e.preventDefault();
+        $('#overlay').show();
+        $('#print-options').show();
+        return false;
+    });
+
+    $('#print-options').delegate('a.close, input.close', 'click', function(e) {
+        e.preventDefault();
+        $('#print-options').hide()
+        $('#overlay').hide();
+    });
 
     //Start watching the form for activity.
     autoLock.Init();
diff --git a/scp/tickets.php b/scp/tickets.php
index 7cc7740bb677eeff2bddd177697a661c7da2996d..0feacf86429846326f98430c4c465c38262295c4 100644
--- a/scp/tickets.php
+++ b/scp/tickets.php
@@ -456,7 +456,7 @@ if($ticket) {
     $inc = 'ticket-view.inc.php';
     if($_REQUEST['a']=='edit' && $thisstaff->canEditTickets()) 
         $inc = 'ticket-edit.inc.php';
-    elseif($_REQUEST['a'] == 'print' && !$ticket->pdfExport())
+    elseif($_REQUEST['a'] == 'print' && !$ticket->pdfExport($_REQUEST['psize'], $_REQUEST['notes']))
         $errors['err'] = 'Internal error: Unable to export the ticket to PDF for print.';
 } else {
     $inc = 'tickets.inc.php';