diff --git a/pkgs/development/compilers/gcc-4.2/fortran.nix b/pkgs/development/compilers/gcc-4.2/fortran.nix
index 240737a21b3..c4b3d8e445d 100644
--- a/pkgs/development/compilers/gcc-4.2/fortran.nix
+++ b/pkgs/development/compilers/gcc-4.2/fortran.nix
@@ -11,7 +11,7 @@ assert langC || langF77;
 
 with import ../../../lib;
 
-let version = "4.2.3"; in
+let version = "4.2.4"; in
 
 stdenv.mkDerivation {
   name = "gcc-${version}";
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   src =
     optional /*langC*/ true (fetchurl {
       url = "mirror://gnu/gcc/gcc-${version}/gcc-core-${version}.tar.bz2";
-      sha256 = "04y84s46wzy4h44hpacf7vyla7b5zfc1qvdq3myvrhp82cp0bv4r";
+      sha256 = "cfc9e7e14966097d24d510cfd905515e8f7464ab5379a50698ae3d88e1f7a532";
     }) ++
     optional langCC (fetchurl {
       url = "mirror://gnu/gcc/gcc-${version}/gcc-g++-${version}.tar.bz2";
@@ -28,7 +28,7 @@ stdenv.mkDerivation {
     }) ++
     optional langF77 (fetchurl {
       url = "mirror://gnu/gcc/gcc-${version}/gcc-fortran-${version}.tar.bz2";
-      sha256 = "1l3ww6qymrkcfqlssb41a5fdnh6w2hqk0v2ijx56jgjbdnzawyp0";
+      sha256 = "6fc2056cd62921b2859381749710af765a46877bd46f9fe5ef6fab0671c47e04";
     });
     
   patches =
diff --git a/pkgs/development/interpreters/r-lang/default.nix b/pkgs/development/interpreters/r-lang/default.nix
index a819fbe4616..1c86ed6c574 100644
--- a/pkgs/development/interpreters/r-lang/default.nix
+++ b/pkgs/development/interpreters/r-lang/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, readline, perl, g77_42, libX11, libpng, libXt, zlib}:
+{stdenv, fetchurl, readline, perl, gfortran, libX11, libpng, libXt, zlib}:
 
 stdenv.mkDerivation {
   name = "r-lang-2.7.0";
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
     sha256 = "17ql1j5d9rfpxs04j9v9qyxiysc9nh6yr43lgfdamayzjpia5jqm";
   };
 
-  buildInputs = [readline perl g77_42 libpng libX11 libXt zlib];
+  buildInputs = [readline perl gfortran libpng libX11 libXt zlib];
 
 	meta = {
 		description = "R is a language and environment for statistical computing and graphics";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e7c862caeaa..f39fa2ca325 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1358,6 +1358,21 @@ let pkgs = rec {
     inherit stdenv;
   };
 
+  gfortran = import ../build-support/gcc-wrapper {
+    name = "gfortran";
+    nativeTools = false;
+    nativeLibc = false;
+    gcc = import ../development/compilers/gcc-4.2/fortran.nix {
+      inherit fetchurl stdenv noSysDirs;
+      langF77 = true;
+      langCC = false;
+      langC = false;
+      inherit gmp mpfr;
+    };
+    inherit (stdenv.gcc) binutils libc;
+    inherit stdenv;
+  };
+
   gcc = gcc42;
 
   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
@@ -1969,7 +1984,7 @@ let pkgs = rec {
   };
 
   rLang = import ../development/interpreters/r-lang {
-    inherit fetchurl stdenv readline perl g77_42 libpng zlib;
+    inherit fetchurl stdenv readline perl gfortran libpng zlib;
     inherit (xorg) libX11 libXt;
   };