diff --git a/include/staff/header.inc.php b/include/staff/header.inc.php
index 1bb03fe07463a7eb25b913699fd1e88fd959c69b..2e0fe9e52e7a7626670451dd50b0093a5878aaf9 100644
--- a/include/staff/header.inc.php
+++ b/include/staff/header.inc.php
@@ -100,4 +100,3 @@
         <?php }elseif($warn) { ?>
             <div id="msg_warning"><?php echo $warn; ?></div>
         <?php } ?>
-
diff --git a/setup/test/tests/class.test.php b/setup/test/tests/class.test.php
index f9cfeb30911d4f688fef4edfab00a29cd54fd48b..542d47c353cab0314028f77a461d80b02cc34bfb 100644
--- a/setup/test/tests/class.test.php
+++ b/setup/test/tests/class.test.php
@@ -62,5 +62,14 @@ class Test {
         }
     }
 
+    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;
+    }
 }
 ?>
diff --git a/setup/test/tests/test.extra-whitespace.php b/setup/test/tests/test.extra-whitespace.php
new file mode 100644
index 0000000000000000000000000000000000000000..96d31ac8425e40a38e66ff90f7a59e9717697bb9
--- /dev/null
+++ b/setup/test/tests/test.extra-whitespace.php
@@ -0,0 +1,26 @@
+<?php
+require_once "class.test.php";
+
+class ExtraWhitespace extends Test {
+    var $name = "PHP Leading and Trailing Whitespace";
+    
+    function testFindWhitespace() {
+        foreach ($this->getAllScripts() as $s) {
+            $matches = array();
+            if (preg_match_all('/^\s+<\?php|\?>\n\s+$/s',
+                    file_get_contents($s), $matches,
+                    PREG_OFFSET_CAPTURE) > 0) {
+                foreach ($matches[0] as $match)
+                    $this->fail(
+                        $s, $this->line_number_for_offset($s, $match[1]),
+                        (strpos('?>', $match[0]) !== false)
+                            ? 'Leading whitespace'
+                            : 'Trailing whitespace');
+            }
+            else $this->pass();
+        }
+    }
+}
+return 'ExtraWhitespace';
+
+?>
diff --git a/setup/test/tests/test.shortopentags.php b/setup/test/tests/test.shortopentags.php
index aab8e0156a388ac93f9d7bede23adb8da8c392bb..571fc08e15e1c3af5c0c60216eeda7d494a6cfa6 100644
--- a/setup/test/tests/test.shortopentags.php
+++ b/setup/test/tests/test.shortopentags.php
@@ -13,23 +13,12 @@ class ShortOpenTag extends Test {
                 foreach ($matches[0] as $match)
                     $this->fail(
                         $s,
-                        line_number_for_offset($s, $match[1]),
+                        $this->line_number_for_offset($s, $match[1]),
                         $match[0]);
             }
             else $this->pass();
         }
     }
 }
-
-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;
-}
-
 return 'ShortOpenTag';
 ?>