diff --git a/include/class.pdf.php b/include/class.pdf.php
index d87c66ba9c422b43292747168777ffbafd8f1a01..2257dcc17aa6641fabeeac32a3fcecc28bd7b2c0 100644
--- a/include/class.pdf.php
+++ b/include/class.pdf.php
@@ -28,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;
 
@@ -183,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 0d9a8ced06a145b71f218af47be20c58fbfa27a1..7e53ec51bd10247932fbd6e416e4afed1939deee 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/footer.inc.php b/include/staff/footer.inc.php
index 2591a55af87caf67b56208c27e7c9ceab678b6cc..d789c14474ef63caf5c06f61d60cdfb6df881bcc 100644
--- a/include/staff/footer.inc.php
+++ b/include/staff/footer.inc.php
@@ -12,5 +12,6 @@ if(is_object($thisstaff) && $thisstaff->isStaff()) { ?>
 <?php
 } ?>
 </div>
+<div id="overlay"></div>
 </body>
 </html>
diff --git a/include/staff/ticket-view.inc.php b/include/staff/ticket-view.inc.php
index 8ba8eb617b5f77ab2a9bc124107f108a207423bc..281d2042074912267af746e38617f66c73b30c8b 100644
--- a/include/staff/ticket-view.inc.php
+++ b/include/staff/ticket-view.inc.php
@@ -43,8 +43,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>
@@ -601,4 +605,41 @@ if(!$cfg->showNotesInline()) { ?>
     <?php
     } ?>
 </div>
+<div style="display:none;" id="print-options">
+    <h3>Ticket Print Options</h3>
+    <a class="close" href="">&times;</a>
+    <hr/>
+    <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>
+        <hr style="margin-top:3em"/>
+        <p class="full-width">
+            <span class="buttons" style="float:left">
+                <input type="reset" value="Reset">
+                <input type="button" value="Cancel" class="close">
+            </span>
+            <span class="buttons" style="float:right">
+                <input type="submit" value="Print">
+            </span>
+         </p>
+    </form>
+</div>
 <script type="text/javascript" src="js/ticket.js"></script>
diff --git a/include/upgrader/upgrade.inc.php b/include/upgrader/upgrade.inc.php
index c17b1b9cdb5a0d52ca589d7a4918f94845b9458b..9e95af3ff030e87d3f1af20881f44b842fc7c769 100644
--- a/include/upgrader/upgrade.inc.php
+++ b/include/upgrader/upgrade.inc.php
@@ -31,7 +31,6 @@ $action=$upgrader->getNextAction();
             <p>3. We can help, feel free to <a href="http://osticket.com/support/" target="_blank">contact us </a> for professional help.</p>
     </div>
     <div class="clear"></div>
-    <div id="overlay"></div>
     <div id="loading">
         <h4><?php echo $action; ?></h4>
         Please wait... while we upgrade your osTicket installation!
diff --git a/scp/css/scp.css b/scp/css/scp.css
index b16510c017d732db511eb4b23ecc26e7ee8689f4..899d9caa4726ab6009a89a8c3ef52196d425c8a9 100644
--- a/scp/css/scp.css
+++ b/scp/css/scp.css
@@ -16,6 +16,10 @@ a {
     text-align:center;
 }
 
+.full-width {
+    width: 100%;
+}
+
 .clear {
     clear:both;
 }
@@ -1140,7 +1144,7 @@ time {
     margin-right:20px;
 }
 
-/* Advanced Ticket Search */
+/* Advanced Search & Ticket print options */
 
 #search_overlay {
     background:#000;
@@ -1149,13 +1153,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 +1170,24 @@ time {
     z-index:1200;
 }
 
-#advanced-search h3 {
+#print-options {
+    width:500px;
+    height:250px;
+}
+
+#print-options hr {
+    height: 1px;
+    border: 0;
+    background: #aaa;
+    background: -moz-linear-gradient(left, rgba(170,170,170,0) 0%, rgba(170,170,170,1) 10%, rgba(170,170,170,1) 90%, rgba(170,170,170,0) 100%); /* FF3.6+ */
+    background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(170,170,170,0)), color-stop(10%,rgba(170,170,170,1)), color-stop(90%,rgba(170,170,170,1)), color-stop(100%,rgba(170,170,170,0))); /* Chrome,Safari4+ */
+    background: -o-linear-gradient(left, rgba(170,170,170,0) 0%,rgba(170,170,170,1) 10%,rgba(170,170,170,1) 90%,rgba(170,170,170,0) 100%); /* Opera 11.10+ */
+    background: -ms-linear-gradient(left, rgba(170,170,170,0) 0%,rgba(170,170,170,1) 10%,rgba(170,170,170,1) 90%,rgba(170,170,170,0) 100%); /* IE10+ */
+    background: linear-gradient(to right, rgba(170,170,170,0) 0%,rgba(170,170,170,1) 10%,rgba(170,170,170,1) 90%,rgba(170,170,170,0) 100%); /* W3C */
+    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00aaaaaa', endColorstr='#00aaaaaa',GradientType=1 ); /* IE6-9 */
+}
+
+#advanced-search h3, #print-options h3 {
     color:#2a67ac;
     font-size:20px;
     margin:0;
@@ -1174,16 +1195,16 @@ 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;
+    padding-top:2em;
     width:100%;
 }
 
@@ -1191,31 +1212,31 @@ time {
     display:none;
 }
 
-#advanced-search fieldset {
+#advanced-search fieldset, #print-options fieldset {
     margin:0;
-    padding:0.25em 0;
+    padding:0 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 +1272,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 +1288,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 +1359,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';