diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2577503..0c59773 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 2.0.5
+
+* Fix Dart 2.0 [runtime cast errors][sdk#27223] in StreamQueue.
+
+[sdk#27223]: https://github.com/dart-lang/sdk/issues/27223
+
 ## 2.0.4
 
 * Add support for Dart 2.0 library changes to Stream and StreamTransformer.
@@ -15,7 +21,7 @@
 
 ## 2.0.2
 
-* Add support for Dart 2.0 library changes to class `Timer`. 
+* Add support for Dart 2.0 library changes to class `Timer`.
 
 ## 2.0.1
 
@@ -35,7 +41,7 @@
 * Make `TypeSafeStream` extend `Stream` instead of implementing it. This ensures
   that new methods on `Stream` are automatically picked up, they will go through
   the `listen` method which type-checks every event.
-  
+
 ## 1.13.2
 
 * Fix a type-warning.
diff --git a/lib/src/stream_queue.dart b/lib/src/stream_queue.dart
index d9be69d..0c81aec 100644
--- a/lib/src/stream_queue.dart
+++ b/lib/src/stream_queue.dart
@@ -99,7 +99,7 @@
   var _eventsReceived = 0;
 
   /// Queue of events not used by a request yet.
-  final QueueList<Result> _eventQueue = new QueueList();
+  final QueueList<Result<T>> _eventQueue = new QueueList();
 
   /// Queue of pending requests.
   ///
@@ -124,7 +124,7 @@
   /// one events.
   Future<bool> get hasNext {
     if (!_isClosed) {
-      var hasNextRequest = new _HasNextRequest();
+      var hasNextRequest = new _HasNextRequest<T>();
       _addRequest(hasNextRequest);
       return hasNextRequest.future;
     }
@@ -219,7 +219,7 @@
   Future<int> skip(int count) {
     if (count < 0) throw new RangeError.range(count, 0, null, "count");
     if (!_isClosed) {
-      var request = new _SkipRequest(count);
+      var request = new _SkipRequest<T>(count);
       _addRequest(request);
       return request.future;
     }
@@ -389,7 +389,7 @@
     _isClosed = true;
 
     if (!immediate) {
-      var request = new _CancelRequest(this);
+      var request = new _CancelRequest<T>(this);
       _addRequest(request);
       return request.future;
     }
@@ -457,7 +457,7 @@
 
   /// Called when the event source adds a new data or error event.
   /// Always calls [_updateRequests] after adding.
-  void _addResult(Result result) {
+  void _addResult(Result<T> result) {
     _eventsReceived++;
     _eventQueue.add(result);
     _updateRequests();
@@ -485,7 +485,7 @@
   ///
   /// If the request queue is empty and the request can be completed
   /// immediately, it skips the queue.
-  void _addRequest(_EventRequest request) {
+  void _addRequest(_EventRequest<T> request) {
     if (_requestQueue.isEmpty) {
       if (request.update(_eventQueue, _isDone)) return;
       _ensureListening();
diff --git a/pubspec.yaml b/pubspec.yaml
index e57d3ef..e163e4c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: async
-version: 2.0.5-dev
+version: 2.0.5
 author: Dart Team <misc@dartlang.org>
 description: Utility functions and classes related to the 'dart:async' library.
 homepage: https://www.github.com/dart-lang/async
