diff --git a/default.nix b/default.nix
index a0b529ef48092cfa781529f8c489b4855149831d..cee9ff5d575b3756dbb62ea14578671e48dc6583 100644
--- a/default.nix
+++ b/default.nix
@@ -62,11 +62,20 @@ in
         # going on and discover the real version specified by `src` below.
         version = "1.17.0.post999";
         # See https://github.com/DavHau/mach-nix/issues/190
-        requirementsExtra = ''
+        requirementsExtra =
+          let
+            foolscap-version =
+              if python <= "python30"
+              then "foolscap == 0.13.1"
+              else "foolscap >= 21.7.0";
+          in
+            ''
+          # See https://github.com/DavHau/mach-nix/issues/190
           pyrsistent < 0.17
-          foolscap == 0.13.1
           configparser
           eliot
+          ${foolscap-version}
+
           # undetected cryptography build dependency
           # https://github.com/DavHau/mach-nix/issues/305
           setuptools_rust