all headers most be strings
diff --git a/lib/shelf_static.dart b/lib/shelf_static.dart
index dd0cd48..28031fb 100644
--- a/lib/shelf_static.dart
+++ b/lib/shelf_static.dart
@@ -36,8 +36,8 @@
 
     var stats = file.statSync();
 
-    var headers = {
-      HttpHeaders.CONTENT_LENGTH: stats.size
+    var headers = <String, String>{
+      HttpHeaders.CONTENT_LENGTH: stats.size.toString()
     };
 
     return new Response.ok(file.openRead(), headers: headers);
diff --git a/test/basic_file_test.dart b/test/basic_file_test.dart
index 72110a1..e840d0c 100644
--- a/test/basic_file_test.dart
+++ b/test/basic_file_test.dart
@@ -35,7 +35,7 @@
 
       return makeRequest(handler, '/root.txt').then((response) {
         expect(response.statusCode, HttpStatus.OK);
-        expect(response.headers[HttpHeaders.CONTENT_LENGTH], 8);
+        expect(response.headers[HttpHeaders.CONTENT_LENGTH], '8');
         expect(response.readAsString(), completion('root txt'));
       });
     });
@@ -47,7 +47,7 @@
 
       return makeRequest(handler, '/files/test.txt').then((response) {
         expect(response.statusCode, HttpStatus.OK);
-        expect(response.headers[HttpHeaders.CONTENT_LENGTH], 16);
+        expect(response.headers[HttpHeaders.CONTENT_LENGTH], '16');
         expect(response.readAsString(), completion('test txt content'));
       });
     });