diff --git a/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix b/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix
new file mode 100644
index 000000000000..7b6aa799944b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "fgl";
+  version = "5.4.2.4";
+  sha256 = "0rh22786f37mpsvhkv075wjh5sd0c83nlhk669xil9rd7swcr66f";
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://web.engr.oregonstate.edu/~erwig/fgl/haskell";
+    description = "Martin Erwig's Functional Graph Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 8a9fb0d4e94e..ff279fcdf331 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -124,7 +124,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   haskellPlatformArgs_future = self : {
     inherit (self) cabal ghc;
     cgi          = self.cgi_3001_1_7_4; # 7.2 ok, 7.3 ok
-    fgl          = self.fgl_5_4_2_3; # 7.2 fails, 7.3 fails
+    fgl          = self.fgl_5_4_2_4; # 7.2 ok, 7.3 fails
     GLUT         = self.GLUT_2_1_2_1; # 7.2 ok, 7.3 ok
     haskellSrc   = self.haskellSrc_1_0_1_4; # 7.2 fails, 7.3 fails
     html         = self.html_1_0_1_2; # 7.2 ok, 7.3 ok
@@ -563,6 +563,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   fgl_5_4_2_2 = callPackage ../development/libraries/haskell/fgl/5.4.2.2.nix {};
   fgl_5_4_2_3 = callPackage ../development/libraries/haskell/fgl/5.4.2.3.nix {};
+  fgl_5_4_2_4 = callPackage ../development/libraries/haskell/fgl/5.4.2.4.nix {};
   fgl = self.fgl_5_4_2_2;
 
   fingertree = callPackage ../development/libraries/haskell/fingertree {};