diff --git a/CHANGELOG.md b/CHANGELOG.md
index b257ba5..110d5b7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Changelog
 
+## 2.1.2
+- Fix bug in `readAsString` when charset is LATIN-1 and content-length is set.
+
 ## 2.1.1
 - Reduce max concurrent connections to the same host to 6 when using `dart:io`.
   That's the same limit that many browsers use.
diff --git a/lib/src/io_io.dart b/lib/src/io_io.dart
index 619dfed..0450651 100644
--- a/lib/src/io_io.dart
+++ b/lib/src/io_io.dart
@@ -76,7 +76,8 @@
       // Special case LATIN-1 since it is common and doesn't need decoding.
       int length = response.contentLength;
       if (length < 0) length = 0;
-      var buffer = new Uint8Buffer(length);
+      // Create empty buffer with capacity matching contentLength.
+      var buffer = new Uint8Buffer(length)..length = 0;
       await for (var bytes in response) {
         buffer.addAll(bytes);
       }
diff --git a/pubspec.yaml b/pubspec.yaml
index b15729e..2829a08 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: resource
-version: 2.1.1
+version: 2.1.2
 description: Reading resource data from (package and other) files.
 author: Dart Team <misc@dartlang.org>
 homepage: https://github.com/dart-lang/resource
diff --git a/test/loader_http_test.dart b/test/loader_http_test.dart
index 7795f58..155613e 100644
--- a/test/loader_http_test.dart
+++ b/test/loader_http_test.dart
@@ -30,6 +30,9 @@
       var encoding = parseAcceptCharset(encodings);
       request.response.headers.contentType =
           new ContentType("text", "plain", charset: encoding.name);
+      if (request.uri.query.contains("length")) {
+        request.response.headers.contentLength = content.length;
+      }
       request.response..write(content)
                       ..close();
     }).catchError(print);
@@ -47,6 +50,14 @@
     expect(string, content);
   });
 
+  test("Latin-1 encoding w/ length", () async {
+    // Regression test for issue #21.
+    var loader = ResourceLoader.defaultLoader;
+    var newUri = uri.replace(query: "length");  // Request length set.
+    String string = await loader.readAsString(newUri, encoding: LATIN1);
+    expect(string, content);
+  });
+
   test("UTF-8 encoding", () async {
     var loader = ResourceLoader.defaultLoader;
     String string = await loader.readAsString(uri, encoding: UTF8);
