diff --git a/lib/src/scanner.dart b/lib/src/scanner.dart
index 2f12698..8c7665c 100644
--- a/lib/src/scanner.dart
+++ b/lib/src/scanner.dart
@@ -113,7 +113,8 @@
   }
   
   String _readWhile(bool test(int charCode)) {
-    int start = _offset;  
+    if (_c == _EOF) return '';      
+    int start = _offset;
     while (_peek() != _EOF && test(_peek())) {
       _read();
     }
@@ -272,7 +273,6 @@
     }    
   }  
 
-  //TODO EOF handling
   // Open delimiter characters have already been read.
   void _parseChangeDelimiterTag(int start) {
     
diff --git a/test/parser_test.dart b/test/parser_test.dart
index 3d53902..8d4137e 100644
--- a/test/parser_test.dart
+++ b/test/parser_test.dart
@@ -248,6 +248,74 @@
      ]));     
    });
    
+  parseFail(source) {
+     try {
+       var parser = new Parser(source, 'foo', '{{ }}', lenient: false);
+       parser.parse();
+       fail('Did not throw.');
+       return null;
+     } catch (ex, st) {
+       if (ex is! TemplateException) {
+        print(ex);
+        print(st);
+       }
+       return ex;
+     }
+   }
+   
+   test('parse eof', () {
+     expectTemplateEx(ex) => expect(ex is TemplateException, isTrue);
+     
+     expectTemplateEx(parseFail('{{#foo}}{{bar}}{{/foo}'));
+     expectTemplateEx(parseFail('{{#foo}}{{bar}}{{/foo'));
+     expectTemplateEx(parseFail('{{#foo}}{{bar}}{{/'));
+     expectTemplateEx(parseFail('{{#foo}}{{bar}}{{'));
+     expectTemplateEx(parseFail('{{#foo}}{{bar}}{'));
+     expectTemplateEx(parseFail('{{#foo}}{{bar}}'));
+     expectTemplateEx(parseFail('{{#foo}}{{bar}'));
+     expectTemplateEx(parseFail('{{#foo}}{{bar'));
+     expectTemplateEx(parseFail('{{#foo}}{{'));
+     expectTemplateEx(parseFail('{{#foo}}{'));
+     expectTemplateEx(parseFail('{{#foo}}'));
+     expectTemplateEx(parseFail('{{#foo}'));
+     expectTemplateEx(parseFail('{{#'));
+     expectTemplateEx(parseFail('{{'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / foo }'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / foo '));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / foo'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ / '));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ /'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{ '));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{{'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}{'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }}'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar }'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar '));
+     expectTemplateEx(parseFail('{{ # foo }}{{ bar'));
+     expectTemplateEx(parseFail('{{ # foo }}{{ '));
+     expectTemplateEx(parseFail('{{ # foo }}{{'));
+     expectTemplateEx(parseFail('{{ # foo }}{'));
+     expectTemplateEx(parseFail('{{ # foo }}'));
+     expectTemplateEx(parseFail('{{ # foo }'));
+     expectTemplateEx(parseFail('{{ # foo '));
+     expectTemplateEx(parseFail('{{ # foo'));
+     expectTemplateEx(parseFail('{{ # '));
+     expectTemplateEx(parseFail('{{ #'));
+     expectTemplateEx(parseFail('{{ '));
+     expectTemplateEx(parseFail('{{'));
+     
+     expectTemplateEx(parseFail('{{= || || =}'));
+     expectTemplateEx(parseFail('{{= || || ='));
+     expectTemplateEx(parseFail('{{= || || '));
+     expectTemplateEx(parseFail('{{= || ||'));
+     expectTemplateEx(parseFail('{{= || |'));
+     expectTemplateEx(parseFail('{{= || '));
+     expectTemplateEx(parseFail('{{= ||'));
+     expectTemplateEx(parseFail('{{= |'));
+     expectTemplateEx(parseFail('{{= '));
+     expectTemplateEx(parseFail('{{='));
+   });
+   
   });
   
 }
\ No newline at end of file
