diff --git a/lib/isolate_runner.dart b/lib/isolate_runner.dart
index 15e0f65..19a6233 100644
--- a/lib/isolate_runner.dart
+++ b/lib/isolate_runner.dart
@@ -32,6 +32,11 @@
   /// Future returned by [onExit]. Set when [onExit] is first read.
   Future<void>? _onExitFuture;
 
+  /// Future returned by [close].
+  ///
+  /// Avoids hanging if calling [close] twice.
+  Future<void>? _closeFuture;
+
   /// Create an [IsolateRunner] wrapper for [isolate]
   ///
   /// The preferred way to create an `IsolateRunner` is to use [spawn]
@@ -78,9 +83,11 @@
   /// life cycle.
   @override
   Future<void> close() {
+    var closeFuture = _closeFuture;
+    if (closeFuture != null) return closeFuture;
     var channel = SingleResponseChannel();
     _commandPort.send(list2(_shutdown, channel.port));
-    return channel.result.then(ignore);
+    return _closeFuture = channel.result.then(ignore);
   }
 
   /// Kills the isolate.
diff --git a/test/isolaterunner_test.dart b/test/isolaterunner_test.dart
index a292eb5..52b2796 100644
--- a/test/isolaterunner_test.dart
+++ b/test/isolaterunner_test.dart
@@ -10,15 +10,23 @@
 const _ms = Duration(milliseconds: 1);
 
 void main() {
-  test('create-close', testCreateClose);
+  group('create-close', testCreateClose);
   test('create-run-close', testCreateRunClose);
   test('separate-isolates', testSeparateIsolates);
   group('isolate functions', testIsolateFunctions);
 }
 
-Future testCreateClose() {
-  return IsolateRunner.spawn().then((IsolateRunner runner) {
-    return runner.close();
+void testCreateClose() {
+  test('simple', () {
+    return IsolateRunner.spawn().then((IsolateRunner runner) {
+      return runner.close();
+    });
+  });
+  test('close twice', () async {
+    var runner = await IsolateRunner.spawn();
+    await runner.close();
+    // Shouldn't hang!
+    await runner.close();
   });
 }
 
