diff --git a/manifest.dhall b/manifest.dhall
index 99c8940b2d273954f6fa5805fafb4e9d58cd32b8..8dda2d28b44f8f5e79eb58c2cf31597ff3ac3b2c 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -286,6 +286,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "net-mqtt" "0.8.2.2"
     , callHackage "memory" "0.18.0"
     , callHackage "microstache" "1.0.2.2"
+    , callHackage "monad-control" "1.0.3.1"
     , callHackage "monad-par" "0.3.5"
     , callHackage "monoid-subclasses" "1.1.3"
     , callHackage "network-byte-order" "0.1.6"
diff --git a/overlay.nix b/overlay.nix
index 063ea58c713b6170593fe4d17033bdb98c7e3ec3..061f7890ce57537642f48858f8a1c5991dd857e7 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -333,6 +333,8 @@ final: prev: with pkgs.haskell.lib; {
 
     microstache = prev.callPackage (./pkgs/microstache.nix) { };
 
+    monad-control = prev.callPackage (./pkgs/monad-control.nix) { };
+
     monad-par = prev.callPackage (./pkgs/monad-par.nix) { };
 
     monoid-subclasses = prev.callPackage (./pkgs/monoid-subclasses.nix) { };
diff --git a/pkgs/monad-control.nix b/pkgs/monad-control.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8be6ec049de6ed6e2e01c8aa04b3caa63c0b832b
--- /dev/null
+++ b/pkgs/monad-control.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, lib, stm, transformers, transformers-base
+, transformers-compat
+}:
+mkDerivation {
+  pname = "monad-control";
+  version = "1.0.3.1";
+  sha256 = "ae0baea04d99375ef788140367179994a7178d400a8ce0d9026846546772713c";
+  libraryHaskellDepends = [
+    base stm transformers transformers-base transformers-compat
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/basvandijk/monad-control";
+  description = "Lift control operations, like exception catching, through monad transformers";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file