diff --git a/CHANGELOG.md b/CHANGELOG.md
index 97d8689..68467db 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
 # 2.0.2-dev
 
 * Don't unnecessarily split argument lists with `/* */` comments (#837).
+* Return correct exit code from `FormatCommand` when formatting stdin (#1035).
 
 # 2.0.1
 
diff --git a/bin/format.dart b/bin/format.dart
index e757c00..2e30848 100644
--- a/bin/format.dart
+++ b/bin/format.dart
@@ -12,7 +12,7 @@
 import 'package:dart_style/src/io.dart';
 import 'package:dart_style/src/style_fix.dart';
 
-void main(List<String> args) {
+void main(List<String> args) async {
   var parser = ArgParser(allowTrailingOptions: true);
 
   defineOptions(parser,
@@ -135,7 +135,7 @@
       setExitIfChanged: setExitIfChanged);
 
   if (argResults.rest.isEmpty) {
-    formatStdin(options, selection, argResults['stdin-name'] as String);
+    await formatStdin(options, selection, argResults['stdin-name'] as String);
   } else {
     formatPaths(options, argResults.rest);
   }
diff --git a/lib/src/cli/format_command.dart b/lib/src/cli/format_command.dart
index 6f6627e..1badec6 100644
--- a/lib/src/cli/format_command.dart
+++ b/lib/src/cli/format_command.dart
@@ -152,7 +152,7 @@
         setExitIfChanged: setExitIfChanged);
 
     if (argResults.rest.isEmpty) {
-      formatStdin(options, selection, stdinName);
+      await formatStdin(options, selection, stdinName);
     } else {
       formatPaths(options, argResults.rest);
       options.summary.show();
diff --git a/lib/src/io.dart b/lib/src/io.dart
index c0064b4..bcdcbc9 100644
--- a/lib/src/io.dart
+++ b/lib/src/io.dart
@@ -1,9 +1,7 @@
 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
-
-library dart_style.src.io;
-
+import 'dart:async';
 import 'dart:convert';
 import 'dart:io';
 
@@ -15,7 +13,8 @@
 import 'source_code.dart';
 
 /// Reads and formats input from stdin until closed.
-void formatStdin(FormatterOptions options, List<int>? selection, String name) {
+Future<void> formatStdin(
+    FormatterOptions options, List<int>? selection, String name) async {
   var selectionStart = 0;
   var selectionLength = 0;
 
@@ -24,6 +23,7 @@
     selectionLength = selection[1];
   }
 
+  var completer = Completer<void>();
   var input = StringBuffer();
   stdin.transform(Utf8Decoder()).listen(input.write, onDone: () {
     var formatter = DartFormatter(
@@ -50,7 +50,11 @@
 $stack''');
       exitCode = 70; // sysexits.h: EX_SOFTWARE
     }
+
+    completer.complete();
   });
+
+  return completer.future;
 }
 
 /// Formats all of the files and directories given by [paths].
