--- ./lib/Test/Harness.pm-pre	Wed Jun 23 07:17:22 2004
+++ ./lib/Test/Harness.pm	Sun Dec 12 21:21:36 2004
@@ -179,14 +179,13 @@ emitted if the test script is skipped co
 
 =item B<Todo tests>
 
-If the standard output line contains the substring C< # TODO > after
-C<not ok> or C<not ok NUMBER>, it is counted as a todo test.  The text
-afterwards is the thing that has to be done before this test will
+If C<not ok> line contains C<#> followed by the word C<TODO>,
+the test is counted as a todo test.  The text
+after C<TODO> should be the explanation: for example,
+what to be done before this test will
 succeed.
 
   not ok 13 # TODO harness the power of the atom
-
-Note that the TODO must have a space after it. 
 
 =begin _deprecated
 
--- ./lib/Test/Harness/Straps.pm-pre	Wed Dec 31 00:18:00 2003
+++ ./lib/Test/Harness/Straps.pm	Sun Dec 12 21:23:14 2004
@@ -580,7 +580,7 @@ sub _is_test {
 
     # We pulverize the line down into pieces in three parts.
     if( my($not, $num, $extra)    = $line  =~ /$Report_Re/ox ) {
-        my ($name, $control) = $extra ? split(/(?:[^\\]|^)#/, $extra) : ();
+        my ($name, $control) = $extra ? split(/(?:\b|[^\\]|^)#/, $extra) : ();
         my ($type, $reason)  = $control ? $control =~ /^\s*(\S+)(?:\s+(.*))?$/ : ();
 
         $test->{number} = $num;
@@ -588,7 +588,7 @@ sub _is_test {
         $test->{name}   = $name;
 
         if( defined $type ) {
-            $test->{type}   = $type =~ /^TODO$/i ? 'todo' :
+            $test->{type}   = $type =~ /^TODO\W?$/i ? 'todo' :	# Allow 'todo:'
                               $type =~ /^Skip/i  ? 'skip' : 0;
         }
         else {
