diff --git a/CHANGELOG.md b/CHANGELOG.md
index c7f1652..f27cacb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.2.3-dev (unreleased)
+
+* Accept responses even if the server converts the ID to a String.
+
 ## 2.2.2
 
 * Fix `Peer.close()` throwing `Bad state: Future already completed`.
diff --git a/lib/src/client.dart b/lib/src/client.dart
index 33a529c..d89a623 100644
--- a/lib/src/client.dart
+++ b/lib/src/client.dart
@@ -197,7 +197,9 @@
   /// resolved.
   void _handleSingleResponse(response) {
     if (!_isResponseValid(response)) return;
-    var request = _pendingRequests.remove(response['id']);
+    var id = response['id'];
+    id = (id is String) ? int.parse(id) : id;
+    var request = _pendingRequests.remove(id);
     if (response.containsKey('result')) {
       request.completer.complete(response['result']);
     } else {
@@ -212,7 +214,9 @@
   bool _isResponseValid(response) {
     if (response is! Map) return false;
     if (response['jsonrpc'] != '2.0') return false;
-    if (!_pendingRequests.containsKey(response['id'])) return false;
+    var id = response['id'];
+    id = (id is String) ? int.parse(id) : id;
+    if (!_pendingRequests.containsKey(id)) return false;
     if (response.containsKey('result')) return true;
 
     if (!response.containsKey('error')) return false;
diff --git a/test/client/client_test.dart b/test/client/client_test.dart
index c1edbe4..228acbd 100644
--- a/test/client/client_test.dart
+++ b/test/client/client_test.dart
@@ -31,6 +31,27 @@
         completion(equals('bar')));
   });
 
+  test('sends a message and returns the response with String id', () {
+    controller.expectRequest((request) {
+      expect(
+          request,
+          allOf([
+            containsPair('jsonrpc', '2.0'),
+            containsPair('method', 'foo'),
+            containsPair('params', {'param': 'value'})
+          ]));
+
+      return {
+        'jsonrpc': '2.0',
+        'result': 'bar',
+        'id': request['id'].toString()
+      };
+    });
+
+    expect(controller.client.sendRequest('foo', {'param': 'value'}),
+        completion(equals('bar')));
+  });
+
   test('sends a notification and expects no response', () {
     controller.expectRequest((request) {
       expect(
