diff --git a/include/client/faq.inc.php b/include/client/faq.inc.php
index 65f770e9673083d2474d2a9eb260771492541d41..d0be23c9fd41b1e9d9572bdcdd854623e5e51a0c 100644
--- a/include/client/faq.inc.php
+++ b/include/client/faq.inc.php
@@ -7,7 +7,7 @@ $category=$faq->getCategory();
 <h1>Frequently Asked Questions</h1>
 <div id="breadcrumbs">
     <a href="index.php">All Categories</a>
-    &raquo; <a href="faq.php?cid=<? echo $category->getId(); ?>"><? echo $category->getName(); ?></a>
+    &raquo; <a href="faq.php?cid=<?php echo $category->getId(); ?>"><?php echo $category->getName(); ?></a>
 </div>
 <div style="width:700;padding-top:2px; float:left;">
 <strong style="font-size:16px;"><?php echo $faq->getQuestion() ?></strong>
@@ -21,8 +21,8 @@ $category=$faq->getCategory();
 <?php
 if($faq->getNumAttachments()) { ?>
  <div><span class="faded"><b>Attachments:</b></span>  <?php echo $faq->getAttachmentsLinks(); ?></div>
-<?
-}?>
+<?php
+} ?>
 
 <div class="article-meta"><span class="faded"><b>Help Topics:</b></span>
     <?php echo ($topics=$faq->getHelpTopics())?implode(', ',$topics):' '; ?>
diff --git a/include/client/tickets.inc.php b/include/client/tickets.inc.php
index 7719ec74a7ef2a58babcae7112a0d2cb05caa92e..1ee781a908a4ba275ca734f1d62be5d684198b9a 100644
--- a/include/client/tickets.inc.php
+++ b/include/client/tickets.inc.php
@@ -147,12 +147,12 @@ $negorder=$order=='DESC'?'ASC':'DESC'; //Negate the sorting
                 <a class="Icon <?php echo strtolower($row['source']); ?>Ticket" title="<?php echo $row['email']; ?>" 
                     href="tickets.php?id=<?php echo $row['ticketID']; ?>"><?php echo $ticketID; ?></a>
                 </td>
-                <td>&nbsp;<?=Format::db_date($row['created'])?></td>
-                <td>&nbsp;<?=ucfirst($row['status'])?></td>
+                <td>&nbsp;<?php echo Format::db_date($row['created']); ?></td>
+                <td>&nbsp;<?php echo ucfirst($row['status']); ?></td>
                 <td>
                     <a href="tickets.php?id=<?php echo $row['ticketID']; ?>"><?php echo $subject; ?></a>
                 </td>
-                <td>&nbsp;<?=Format::truncate($dept,30)?></td>
+                <td>&nbsp;<?php echo Format::truncate($dept,30); ?></td>
                 <td><?php echo $phone; ?></td>
             </tr>
         <?php
diff --git a/include/staff/cannedreply.inc.php b/include/staff/cannedreply.inc.php
index f18b114a2225fde48d9bddbc73ff3ec93e5a3fd4..51ee1c256ae235b2be6b77426c9fa36749d7ff9d 100644
--- a/include/staff/cannedreply.inc.php
+++ b/include/staff/cannedreply.inc.php
@@ -92,7 +92,8 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                 <div>
                     <input type="file" name="attachments[]" value=""/>
                 </div>
-                <?}?>
+                <?php 
+                }?>
                 <div class="faded">You can upload up to 10 attachments per canned response.</div>
             </td>
         </tr>
diff --git a/include/staff/ticket-edit.inc.php b/include/staff/ticket-edit.inc.php
index a0138118886857922da11f3a10bcb5d7bb1d1938..39093db710d6ca41cf681232ed4fa082b1278532 100644
--- a/include/staff/ticket-edit.inc.php
+++ b/include/staff/ticket-edit.inc.php
@@ -66,7 +66,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$ticket->getUpdateInfo());
                     <option value="API"   <?php echo ($info['source']=='API')?'selected="selected"':''; ?>>API</option>
                     <option value="Other" <?php echo ($info['source']=='Other')?'selected="selected"':''; ?>>Other</option>
                 </select>
-                &nbsp;<font class="error"><b>*</b>&nbsp;<?=$errors['source']?></font>
+                &nbsp;<font class="error"><b>*</b>&nbsp;<?php echo $errors['source']; ?></font>
             </td>
         </tr>
         <tr>
@@ -85,7 +85,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$ticket->getUpdateInfo());
                     }
                     ?>
                 </select>
-                &nbsp;<font class="error"><b>*</b>&nbsp;<?=$errors['topicId']?></font>
+                &nbsp;<font class="error"><b>*</b>&nbsp;<?php echo $errors['topicId']; ?></font>
             </td>
         </tr>
         <tr>
@@ -104,7 +104,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$ticket->getUpdateInfo());
                     }
                     ?>
                 </select>
-                &nbsp;<font class="error">*&nbsp;<?=$errors['priorityId']?></font>
+                &nbsp;<font class="error">*&nbsp;<?php echo $errors['priorityId']; ?></font>
             </td>
         </tr>
         <tr>
@@ -123,7 +123,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$ticket->getUpdateInfo());
                     }
                     ?>
                 </select>
-                &nbsp;<font class="error">*&nbsp;<?=$errors['slaId']?></font>
+                &nbsp;<font class="error">*&nbsp;<?php echo $errors['slaId']; ?></font>
             </td>
         </tr>
         <tr>
@@ -131,8 +131,8 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$ticket->getUpdateInfo());
                 Subject:
             </td>
             <td>
-                 <input type="text" name="subject" size="60" value="<?=$info['subject']?>">
-                 &nbsp;<font class="error">*&nbsp;<?=$errors['subject']?></font>
+                 <input type="text" name="subject" size="60" value="<?php echo $info['subject']; ?>">
+                 &nbsp;<font class="error">*&nbsp;<?php $errors['subject']; ?></font>
             </td>
         </tr>
         <tr>
@@ -149,7 +149,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$ticket->getUpdateInfo());
                     
                 echo Misc::timeDropdown($hr, $min, 'time');
                 ?>
-                &nbsp;<font class="error">&nbsp;<?=$errors['duedate']?>&nbsp;<?php echo $errors['time']; ?></font>
+                &nbsp;<font class="error">&nbsp;<?php echo $errors['duedate']; ?>&nbsp;<?php echo $errors['time']; ?></font>
                 <em>Time is based on your time zone (GMT <?php echo $thisstaff->getTZoffset(); ?>)</em>
             </td>
         </tr>
diff --git a/include/staff/ticket-open.inc.php b/include/staff/ticket-open.inc.php
index db3aca84018b1d0744a46363243a6f111f3bfdba..1ef3a7ba52ee0925ee4166984629d6661ce861a6 100644
--- a/include/staff/ticket-open.inc.php
+++ b/include/staff/ticket-open.inc.php
@@ -30,7 +30,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
             <?php 
             if($cfg->notifyONNewStaffTicket()) { ?>
                &nbsp;&nbsp;&nbsp;
-               <input type="checkbox" name="alertuser" <?php echo (!$errors || $info['alertuser'])? 'checked="checked"': ''?>>Send alert to user.
+               <input type="checkbox" name="alertuser" <?php echo (!$errors || $info['alertuser'])? 'checked="checked"': ''; ?>>Send alert to user.
             <?php 
              } ?>
             </td>
@@ -71,7 +71,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                     <option value="Email" <?php echo ($info['source']=='Email')?'selected="selected"':''; ?>>Email</option>
                     <option value="Other" <?php echo ($info['source']=='Other')?'selected="selected"':''; ?>>Other</option>
                 </select>
-                &nbsp;<font class="error"><b>*</b>&nbsp;<?=$errors['source']?></font>
+                &nbsp;<font class="error"><b>*</b>&nbsp;<?php echo $errors['source']; ?></font>
             </td>
         </tr>
         <tr>
@@ -90,7 +90,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                     }
                     ?>
                 </select>
-                &nbsp;<font class="error"><b>*</b>&nbsp;<?=$errors['deptId']?></font>
+                &nbsp;<font class="error"><b>*</b>&nbsp;<?php echo $errors['deptId']; ?></font>
             </td>
         </tr>
 
@@ -110,7 +110,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                     }
                     ?>
                 </select>
-                &nbsp;<font class="error"><b>*</b>&nbsp;<?=$errors['topicId']?></font>
+                &nbsp;<font class="error"><b>*</b>&nbsp;<?php echo $errors['topicId']; ?></font>
             </td>
         </tr>
         <tr>
@@ -118,13 +118,13 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                 Subject:
             </td>
             <td>
-                 <input type="text" name="subject" size="55" value="<?=$info['subject']?>">
-                 &nbsp;<font class="error">*&nbsp;<?=$errors['subject']?></font>
+                 <input type="text" name="subject" size="55" value="<?php echo $info['subject']; ?>">
+                 &nbsp;<font class="error">*&nbsp;<?php echo $errors['subject']; ?></font>
             </td>
         </tr>
         <tr>
             <th colspan="2">
-                <em><strong>Issue summary</strong>: Detailed summary of the reason(s) of opening the ticket. <font class="error">*&nbsp;<?=$errors['issue']?></font></em>
+                <em><strong>Issue summary</strong>: Detailed summary of the reason(s) of opening the ticket. <font class="error">*&nbsp;<?php echo $errors['issue']; ?></font></em>
             </th>
         </tr>
         <tr>
@@ -179,14 +179,14 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                 <div class="file_input">
                     <input type="file" class="multifile" name="attachments[]" size="30" value="" />
                 </div>
-            <?
+            <?php
             } ?>
             </td>
         </tr>
 
         <tr>
             <th colspan="2">
-                <em><strong>Internal Note</strong>: Optional internal note (recommended on assignment) <font class="error">&nbsp;<?php echo $errors['note'];?></font></em>
+                <em><strong>Internal Note</strong>: Optional internal note (recommended on assignment) <font class="error">&nbsp;<?php echo $errors['note']; ?></font></em>
             </th>
         </tr>
         <tr>
@@ -213,7 +213,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                     
                 echo Misc::timeDropdown($hr, $min, 'time');
                 ?>
-                &nbsp;<font class="error">&nbsp;<?=$errors['duedate']?>&nbsp;<?php echo $errors['time']; ?></font>
+                &nbsp;<font class="error">&nbsp;<?php echo $errors['duedate']; ?> &nbsp; <?php echo $errors['time']; ?></font>
                 <em>Time is based on your time zone (GMT <?php echo $thisstaff->getTZoffset(); ?>)</em>
             </td>
         </tr>
@@ -233,7 +233,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                     }
                     ?>
                 </select>
-                &nbsp;<font class="error">&nbsp;<?=$errors['priorityId']?></font>
+                &nbsp;<font class="error">&nbsp;<?php echo $errors['priorityId']; ?></font>
             </td>
         </tr>
         <?php
@@ -269,6 +269,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
         </tr>
         <?php
         } ?>
+
         <?php
         if($thisstaff->canCloseTickets()) { ?>
         <tr>
@@ -290,7 +291,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info);
                 ?>
                 <label><input type="radio" name="signature" value="none" checked="checked"> None</label>
                 <?php
-                if($thisstaff->getSignature()) {?>
+                if($thisstaff->getSignature()) { ?>
                     <label><input type="radio" name="signature" value="mine"
                         <?php echo ($info['signature']=='mine')?'checked="checked"':''; ?>> My signature</label>
                 <?php
diff --git a/include/upgrader/prereq.inc.php b/include/upgrader/prereq.inc.php
index d32fc328fbe3dd51759ddbaee6f58ac25d862aa2..c08c7fedcc3618ab8f9f1e368423f5cf1deaf36e 100644
--- a/include/upgrader/prereq.inc.php
+++ b/include/upgrader/prereq.inc.php
@@ -14,9 +14,9 @@ if(!defined('OSTSCPINC') || !$thisstaff || !$thisstaff->isAdmin()) die('Access D
             <h3>Prerequisites: <font color="red"><?php echo $errors['prereq']; ?></font></h3>
             These items are necessary in order to run the latest version of osTicket.
             <ul class="progress">
-                <li class="<? echo $upgrader->check_php()?'yes':'no'; ?>">
+                <li class="<?php echo $upgrader->check_php()?'yes':'no'; ?>">
                 PHP v4.3 or greater - (<small><b><?php echo PHP_VERSION; ?></b></small>)</li>
-                <li class="<? echo $upgrader->check_mysql()?'yes':'no'; ?>">
+                <li class="<?php echo $upgrader->check_mysql()?'yes':'no'; ?>">
                 MySQL v4.4 or greater - (<small><b><?php echo extension_loaded('mysql')?'module loaded':'missing!'; ?></b></small>)</li>
             </ul>
             <h3>Higly Recommended:</h3>
diff --git a/scp/dashboard.php b/scp/dashboard.php
index 8756ca1ea86522eb77c8a7b8ee381f3928de27f9..3b41ccfdfc1a2f4e123c501d8b0a1088584cffb3 100644
--- a/scp/dashboard.php
+++ b/scp/dashboard.php
@@ -63,6 +63,6 @@ member.</p>
 
 <div id="table-here"></div>
 
-<?
+<?php
 include(STAFFINC_DIR.'footer.inc.php');
 ?>
diff --git a/setup/inc/install-prereq.inc.php b/setup/inc/install-prereq.inc.php
index b07ffd996c5f231c18c7471d419d7ec62b55969b..11746eda72bb2afe44cee62eb7f3ae99e4145a15 100644
--- a/setup/inc/install-prereq.inc.php
+++ b/setup/inc/install-prereq.inc.php
@@ -14,17 +14,17 @@ if(!defined('SETUPINC')) die('Kwaheri!');
             <h3>Required: <font color="red"><?php echo $errors['prereq']; ?></font></h3>
             These items are necessary in order to install and use osTicket.
             <ul class="progress">
-                <li class="<? echo $installer->check_php()?'yes':'no'; ?>">
+                <li class="<?php echo $installer->check_php()?'yes':'no'; ?>">
                 PHP v4.3 or greater - (<small><b><?php echo PHP_VERSION; ?></b></small>)</li>
-                <li class="<? echo $installer->check_mysql()?'yes':'no'; ?>">
+                <li class="<?php echo $installer->check_mysql()?'yes':'no'; ?>">
                 MySQL v4.4 or greater - (<small><b><?php echo extension_loaded('mysql')?'module loaded':'missing!'; ?></b></small>)</li>
             </ul>
             <h3>Recommended:</h3>
             You can use osTicket without these, but you may not be able to use all features.
             <ul class="progress">
-                <li class="<? echo extension_loaded('mcrypt')?'yes':'no'; ?>">Mcrypt extension</li>
-                <li class="<? echo extension_loaded('gd')?'yes':'no'; ?>">Gdlib extension</li>
-                <li class="<? echo extension_loaded('imap')?'yes':'no'; ?>">PHP IMAP extension</li>
+                <li class="<?php echo extension_loaded('mcrypt')?'yes':'no'; ?>">Mcrypt extension</li>
+                <li class="<?php echo extension_loaded('gd')?'yes':'no'; ?>">Gdlib extension</li>
+                <li class="<?php echo extension_loaded('imap')?'yes':'no'; ?>">PHP IMAP extension</li>
             </ul>
             <div id="bar">
                 <form method="post" action="install.php">
diff --git a/setup/test/lint.php b/setup/test/lint.php
index 4566c495a247874f538fc043cd777185e17d509c..4887856182e23d3acfed19168a92dbc744f4e9e8 100644
--- a/setup/test/lint.php
+++ b/setup/test/lint.php
@@ -44,7 +44,40 @@ if (strlen($syntax_errors)) {
     echo "$syntax_errors";
     exit();
 } else {
+    echo "pass\n";
+}
+
+function line_number_for_offset($filename, $offset) {
+    $lines = file($filename);
+    $bytes = $line = 0;
+    while ($bytes < $offset) {
+        $bytes += strlen(array_shift($lines));
+        $line += 1;
+    }
+    return $line;
+}
+echo "Short open tags: ";
+$fails = array();
+foreach ($scripts as $s) {
+    $matches = array();
+    if (preg_match_all('/<\?\s*(?!php|xml).*$/m', file_get_contents($s), $matches,
+            PREG_OFFSET_CAPTURE) > 0) {
+        foreach ($matches[0] as $match)
+            $fails[] = array(
+                str_replace($root.'/', '', $s),
+                $match[0],
+                line_number_for_offset($s, $match[1]));
+    }
+}
+if (count($fails)) {
+    echo "FAIL\n";
+    echo "-------------------------------------------------------\n";
+    foreach ($fails as $f)
+        echo sprintf("In %s, line %d: %s\n", $f[0], $f[2],
+            str_replace("\n", " ", $f[1]));
     echo "\n";
+} else {
+    echo "pass\n";
 }
 
 # Run phplint across all php files