diff --git a/CHANGELOG.md b/CHANGELOG.md
index 25a662a..879f844 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@
 
 * Remove MustacheFormatException
 * Allow templates to specify default delimiters. Thanks to Joris Hermans.
+* Fix #24: renderString shrinks multiple newlines to just one (Thanks to John Ryan for the repro).
 
 ## 0.2.4
 
diff --git a/lib/src/parser.dart b/lib/src/parser.dart
index 779afaa..10f8bd7 100644
--- a/lib/src/parser.dart
+++ b/lib/src/parser.dart
@@ -199,7 +199,7 @@
   // Handle standalone tags and indented partials.
   //
   // A "standalone tag" in the spec is a tag one a line where the line only
-  // contains whitespace. During rendering the whitespace is ommitted.
+  // contains whitespace. During rendering the whitespace is omitted.
   // Standalone partials also indent their content to match the tag during
   // rendering.
 
@@ -208,6 +208,10 @@
   //
   // Where lineEnd can also mean start/end of the source.
   void _parseLine() {
+    // If first token is a newline append it.
+    var t = _peek();
+    if (t != null && t.type == TokenType.lineEnd) _appendTextToken(t);
+
     // Continue parsing standalone lines until we find one than isn't a
     // standalone line.
     while (_peek() != null) {
diff --git a/test/parser_test.dart b/test/parser_test.dart
index 9600042..eb1231e 100644
--- a/test/parser_test.dart
+++ b/test/parser_test.dart
@@ -208,6 +208,29 @@
       expectNodes(nodes[0].children, [new TextNode('def\n', 8, 12)]);
     });
 
+    test('parse variable newline', () {
+      var source = 'abc\n\n{{foo}}def';
+      var parser = new Parser(source, 'foo', '{{ }}', lenient: false);
+      var nodes = parser.parse();
+      expectNodes(nodes, [
+        new TextNode('abc\n\n', 0, 5),
+        new VariableNode('foo', 5, 12, escape: true),
+        new TextNode('def', 12, 15)
+      ]);
+    });
+
+    test('parse section standalone tag whitespace v2', () {
+      var source = 'abc\n\n{{#foo}}\ndef\n{{/foo}}\nghi';
+      var parser = new Parser(source, 'foo', '{{ }}', lenient: false);
+      var nodes = parser.parse();
+      expectNodes(nodes, [
+        new TextNode('abc\n\n', 0, 5),
+        new SectionNode('foo', 5, 13, '{{ }}'),
+        new TextNode('ghi', 27, 30)
+      ]);
+      expectNodes(nodes[1].children, [new TextNode('def\n', 14, 18)]);
+    });
+
     test('parse whitespace', () {
       var source = 'abc\n   ';
       var parser = new Parser(source, 'foo', '{{ }}', lenient: false);
