diff --git a/lib/scanner.dart b/lib/scanner.dart
index e4ac7bc..6a591b9 100644
--- a/lib/scanner.dart
+++ b/lib/scanner.dart
@@ -4,12 +4,7 @@
 //List<_Token> scan(String source, bool lenient) => _scan(source, lenient);
 //List<_Token> trim(List<_Token> tokens) => _trim(tokens);
 
-List<_Token> _scan(String source, bool lenient) //=> _trim(new _Scanner(source).scan());
-{
-	var tokens = new _Scanner(source).scan();
-	tokens = _trim(tokens);	
-	return tokens;
-}
+List<_Token> _scan(String source, bool lenient) => _trim(new _Scanner(source).scan());
 
 const int _TEXT = 1;
 const int _VARIABLE = 2;
@@ -39,6 +34,7 @@
 const int _EOF = -1;
 const int _TAB = 9;
 const int _NEWLINE = 10;
+const int _RETURN = 13;
 const int _SPACE = 32;
 const int _EXCLAIM = 33;
 const int _QUOTE = 34;
@@ -109,6 +105,8 @@
 			// Swallow line end.
 			assert(isLineEnd(peek()));
 			read();
+
+			standaloneLineCheck(); //FIXME don't use recursion.
 		}
 	}
 
@@ -183,7 +181,7 @@
 		    && c != _CLOSE_MUSTACHE
 		    && c != _EOF);
 
-String _readLine() => _r.readWhile(
+	String _readLine() => _r.readWhile(
 		(c) => c != _OPEN_MUSTACHE
 		    && c != _CLOSE_MUSTACHE
 		    && c != _EOF
@@ -219,6 +217,15 @@
 					_read();
 					_addCharToken(_TEXT, _CLOSE_MUSTACHE);
 					break;
+				case _RETURN:
+					_read();
+					if (_peek() == _NEWLINE) {
+						_read();
+						_tokens.add(new _Token(_LINE_END, '\r\n', _r.line, _r.column));
+					} else {
+						_addCharToken(_TEXT, _RETURN);
+					}
+					break;
 				case _NEWLINE:
 					_read();
 					_addCharToken(_LINE_END, _NEWLINE); //TODO handle \r\n
