diff --git a/pkgs/development/tools/literate-programming/noweb/builder.sh b/pkgs/development/tools/literate-programming/noweb/builder.sh
deleted file mode 100644
index 0b5e5c6f6349..000000000000
--- a/pkgs/development/tools/literate-programming/noweb/builder.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-source $stdenv/setup
-export BIN=$out/bin
-export LIB=$out/lib
-export MAN=$out/man
-# What location for texinputs (tex macro's used by noweb)?
-export TEXINPUTS=$out/share/texmf/tex/latex
-export SHELL
-makeFlags="-e"
-installFlags="-e"
-preInstall="mkdir -p $TEXINPUTS"
-genericBuild
diff --git a/pkgs/development/tools/literate-programming/noweb/default.nix b/pkgs/development/tools/literate-programming/noweb/default.nix
index 37d9e685eb1e..c173010928dc 100644
--- a/pkgs/development/tools/literate-programming/noweb/default.nix
+++ b/pkgs/development/tools/literate-programming/noweb/default.nix
@@ -1,10 +1,23 @@
-{stdenv, fetchurl}:
+{stdenv, fetchurl, gawk}:
 
 stdenv.mkDerivation {
-  name = "noweb-2.10c";
+  name = "noweb-2.11b";
   src = fetchurl {
-    url = http://nixos.org/tarballs/noweb-20060201.tar.gz;
-    md5 = "b4813c6bc0bab9004e57edc1d7e57638";
+    urls = [ "http://ftp.de.debian.org/debian/pool/main/n/noweb/noweb_2.11b.orig.tar.gz"
+             "ftp://www.eecs.harvard.edu/pub/nr/noweb.tgz"
+          ];
+    sha256 = "10hdd6mrk26kyh4bnng4ah5h1pnanhsrhqa7qwqy6dyv3rng44y9";
   };
-  builder = ./builder.sh;
+  preBuild = ''
+    cd src
+    makeFlags="BIN=$out/bin LIB=$out/lib MAN=$out/share/man TEXINPUTS=$out/share/texmf/tex/latex"
+  '';
+  preInstall=''mkdir -p $out/share/texmf/tex/latex'';
+  postInstall= ''
+    substituteInPlace $out/bin/cpif --replace "PATH=/bin:/usr/bin" ""
+    for f in $out/bin/{noweb,nountangle,noroots,noroff,noindex} $out/lib/*; do
+      substituteInPlace $f --replace "nawk" "${gawk}/bin/awk"
+    done
+  '';
+  patches = [ ./no-FAQ.patch ];
 }
diff --git a/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch b/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch
new file mode 100644
index 000000000000..3230924990b8
--- /dev/null
+++ b/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch
@@ -0,0 +1,11 @@
+--- a/src/Makefile	2006-06-12 22:14:20.000000000 +0200
++++ b/src/Makefile	2010-06-17 11:30:11.804018145 +0200
+@@ -198,7 +198,7 @@
+ 	(cd elisp; ci -l $(CINAME) $(CIMSG) *.el)
+ 	ci -l $(CINAME) $(CIMSG) Makefile.nw INSTALL INSTALL.DOS README FAQ COPYRIGHT nwmake *.nw
+ 
+-source: FAQ
++source:
+ 	for i in c shell lib xdoc icon awk tex; do (cd $$i; make CPIF=">" source); done
+ 	sleep 1
+ 	for i in c shell lib xdoc icon awk tex; do (cd $$i; make touch); done
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e3df7e1c000c..32825537ccc2 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3322,7 +3322,7 @@ let
   };
 
   noweb = import ../development/tools/literate-programming/noweb {
-    inherit fetchurl stdenv;
+    inherit fetchurl stdenv gawk;
   };
 
   omake = import ../development/tools/ocaml/omake {