diff --git a/sdk/lib/convert/ascii.dart b/sdk/lib/convert/ascii.dart
index a076210..c954e64 100644
--- a/sdk/lib/convert/ascii.dart
+++ b/sdk/lib/convert/ascii.dart
@@ -69,7 +69,9 @@
 
 // Superclass for [AsciiEncoder] and [Latin1Encoder].
 // Generalizes common operations that only differ by a mask;
-class _UnicodeSubsetEncoder extends Converter<String, List<int>> {
+class _UnicodeSubsetEncoder extends Converter<String, List<int>>
+    implements ChunkedConverter<String, List<int>, String, List<int>> {
+
   final int _subsetMask;
 
   const _UnicodeSubsetEncoder(this._subsetMask);
@@ -154,7 +156,9 @@
  * This class converts Latin-1 bytes (lists of unsigned 8-bit integers)
  * to a string.
  */
-abstract class _UnicodeSubsetDecoder extends Converter<List<int>, String> {
+abstract class _UnicodeSubsetDecoder extends Converter<List<int>, String>
+    implements ChunkedConverter<List<int>, String, List<int>, String> {
+
   final bool _allowInvalid;
   final int _subsetMask;
 
diff --git a/sdk/lib/convert/base64.dart b/sdk/lib/convert/base64.dart
index 3fe1357..0254f85 100644
--- a/sdk/lib/convert/base64.dart
+++ b/sdk/lib/convert/base64.dart
@@ -70,7 +70,9 @@
  *
  * The results are ASCII strings using a restricted alphabet.
  */
-class Base64Encoder extends Converter<List<int>, String> {
+class Base64Encoder extends Converter<List<int>, String>
+    implements ChunkedConverter<List<int>, String, List<int>, String> {
+
   final bool _urlSafe;
 
   const Base64Encoder() : _urlSafe = false;
@@ -340,7 +342,8 @@
  *
  * The encoding is required to be properly padded.
  */
-class Base64Decoder extends Converter<String, List<int>> {
+class Base64Decoder extends Converter<String, List<int>>
+    implements ChunkedConverter<String, List<int>, String, List<int>> {
 
   const Base64Decoder();
 
diff --git a/sdk/lib/convert/converter.dart b/sdk/lib/convert/converter.dart
index dfcfcdf..75d4cf0 100644
--- a/sdk/lib/convert/converter.dart
+++ b/sdk/lib/convert/converter.dart
@@ -52,7 +52,8 @@
  *
  * For a non-chunked conversion converts the input in sequence.
  */
-class _FusedConverter<S, M, T> extends Converter<S, T> {
+class _FusedConverter<S, M, T> extends Converter<S, T>
+    implements ChunkedConverter<S, T, S, T> {
   final Converter<S, M> _first;
   final Converter<M, T> _second;
 
diff --git a/sdk/lib/convert/html_escape.dart b/sdk/lib/convert/html_escape.dart
index ff74442..3a516bb 100644
--- a/sdk/lib/convert/html_escape.dart
+++ b/sdk/lib/convert/html_escape.dart
@@ -152,7 +152,8 @@
  * found to be easier to read if greater-than is also escaped whenever
  * less-than is.
  */
-class HtmlEscape extends Converter<String, String> {
+class HtmlEscape extends Converter<String, String>
+    implements ChunkedConverter<String, String, String, String> {
 
   /** The [HtmlEscapeMode] used by the converter. */
   final HtmlEscapeMode mode;
diff --git a/sdk/lib/convert/json.dart b/sdk/lib/convert/json.dart
index 24931df..3d5ee82 100644
--- a/sdk/lib/convert/json.dart
+++ b/sdk/lib/convert/json.dart
@@ -159,7 +159,8 @@
 /**
  * This class converts JSON objects to strings.
  */
-class JsonEncoder extends Converter<Object, String> {
+class JsonEncoder extends Converter<Object, String>
+    implements ChunkedConverter<Object, String, Object, String> {
   /**
    * The string used for indention.
    *
@@ -284,7 +285,9 @@
  * a JSON string, and then UTF-8 encoding the string, but without
  * creating an intermediate string.
  */
-class JsonUtf8Encoder extends Converter<Object, List<int>> {
+class JsonUtf8Encoder extends Converter<Object, List<int>>
+    implements ChunkedConverter<Object, List<int>, Object, List<int>> {
+
   /** Default buffer size used by the JSON-to-UTF-8 encoder. */
   static const int DEFAULT_BUFFER_SIZE = 256;
   /** Indentation used in pretty-print mode, `null` if not pretty. */
@@ -470,7 +473,8 @@
 /**
  * This class parses JSON strings and builds the corresponding objects.
  */
-class JsonDecoder extends Converter<String, Object> {
+class JsonDecoder extends Converter<String, Object>
+    implements ChunkedConverter<String, Object, String, Object> {
   final _Reviver _reviver;
   /**
    * Constructs a new JsonDecoder.
diff --git a/sdk/lib/convert/line_splitter.dart b/sdk/lib/convert/line_splitter.dart
index b728d8f..331527e 100644
--- a/sdk/lib/convert/line_splitter.dart
+++ b/sdk/lib/convert/line_splitter.dart
@@ -19,7 +19,8 @@
  */
 class LineSplitter
     extends Converter<String, List<String>>/*=Object*/
-    implements Object/*=StreamTransformer<String, String>*/ {
+    implements ChunkedConverter<String, List<String>, String, String>
+        /*=StreamTransformer<String, String>*/ {
 
   const LineSplitter();
 
diff --git a/sdk/lib/convert/utf.dart b/sdk/lib/convert/utf.dart
index 69bb72c..aeee9ef 100644
--- a/sdk/lib/convert/utf.dart
+++ b/sdk/lib/convert/utf.dart
@@ -76,7 +76,8 @@
  * This class converts strings to their UTF-8 code units (a list of
  * unsigned 8-bit integers).
  */
-class Utf8Encoder extends Converter<String, List<int>> {
+class Utf8Encoder extends Converter<String, List<int>>
+    implements ChunkedConverter<String, List<int>, String, List<int>> {
 
   const Utf8Encoder();
 
@@ -304,7 +305,9 @@
  * This class converts UTF-8 code units (lists of unsigned 8-bit integers)
  * to a string.
  */
-class Utf8Decoder extends Converter<List<int>, String> {
+class Utf8Decoder extends Converter<List<int>, String>
+    implements ChunkedConverter<List<int>, String, List<int>, String> {
+
   final bool _allowMalformed;
 
   /**
diff --git a/sdk/lib/io/data_transformer.dart b/sdk/lib/io/data_transformer.dart
index 6a50af4..d908e67 100644
--- a/sdk/lib/io/data_transformer.dart
+++ b/sdk/lib/io/data_transformer.dart
@@ -275,7 +275,9 @@
  * The [ZLibEncoder] encoder is used by [ZLibCodec] and [GZipCodec] to compress
  * data.
  */
-class ZLibEncoder extends Converter<List<int>, List<int>> {
+class ZLibEncoder extends Converter<List<int>, List<int>>
+    implements ChunkedConverter<List<int>, List<int>, List<int>, List<int>> {
+
   /**
    * When true, `GZip` frames will be added to the compressed data.
    */
diff --git a/sdk/lib/io/string_transformer.dart b/sdk/lib/io/string_transformer.dart
index ab17eaf..1e540c3 100644
--- a/sdk/lib/io/string_transformer.dart
+++ b/sdk/lib/io/string_transformer.dart
@@ -42,7 +42,8 @@
   }
 }
 
-class _WindowsCodePageEncoder extends Converter<String, List<int>> {
+class _WindowsCodePageEncoder extends Converter<String, List<int>>
+    implements ChunkedConverter<String, List<int>, String, List<int>> {
 
   const _WindowsCodePageEncoder();
 
@@ -94,7 +95,8 @@
 }
 
 
-class _WindowsCodePageDecoder extends Converter<List<int>, String> {
+class _WindowsCodePageDecoder extends Converter<List<int>, String>
+    implements ChunkedConverter<List<int>, String, List<int>, String> {
 
   const _WindowsCodePageDecoder();
 
diff --git a/tools/VERSION b/tools/VERSION
index f0eb17c..868ff3c 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 17
 PATCH 0
 PRERELEASE 6
-PRERELEASE_PATCH 2
+PRERELEASE_PATCH 3
