diff --git a/pkgs/misc/lilypond/default.nix b/pkgs/misc/lilypond/default.nix
index a740323b47f..9e76693ce8f 100644
--- a/pkgs/misc/lilypond/default.nix
+++ b/pkgs/misc/lilypond/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, ghostscript, texinfo, imagemagick, texi2html, guile
+{ stdenv, lib, fetchurl, ghostscript, gyre-fonts, texinfo, imagemagick, texi2html, guile
 , python2, gettext, flex, perl, bison, pkgconfig, autoreconfHook, dblatex
 , fontconfig, freetype, pango, fontforge, help2man, zip, netpbm, groff
 , makeWrapper, t1utils
@@ -7,22 +7,17 @@
   }
 }:
 
-let
-
-  version = "2.18.2";
-
-in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lilypond";
-  inherit version;
+  version = "2.20.0";
 
-  src = fetchgit {
-    url = "https://git.savannah.gnu.org/r/lilypond.git";
-    rev = "release/${version}-1";
-    sha256 = "0fk045fmmb6fcv7jdvkbqr04qlwnxzwclr2gzx3gja714xy6a76x";
+  src = fetchurl {
+    url = "http://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz";
+    sha256 = "0qd6pd4siss016ffmcyw5qc6pr2wihnvrgd4kh1x725w7wr02nar";
   };
 
+  patches = [ ./findlib.patch ];
+
   postInstall = ''
     for f in "$out/bin/"*; do
         # Override default argv[0] setting so LilyPond can find
@@ -35,7 +30,9 @@ stdenv.mkDerivation {
 
   configureFlags = [
     "--disable-documentation"
-    "--with-ncsb-dir=${ghostscript}/share/ghostscript/fonts"
+     # FIXME: these URW fonts are not OTF, configure reports "URW++ OTF files... no".
+    "--with-urwotf-dir=${ghostscript}/share/ghostscript/fonts"
+    "--with-texgyre-dir=${gyre-fonts}/share/fonts/truetype/"
   ];
 
   preConfigure = ''
@@ -43,25 +40,23 @@ stdenv.mkDerivation {
     export HOME=$TMPDIR/home
   '';
 
-  nativeBuildInputs = [ makeWrapper pkgconfig autoreconfHook ];
-
-  autoreconfPhase = "NOCONFIGURE=1 sh autogen.sh";
+  nativeBuildInputs = [ autoreconfHook bison flex makeWrapper pkgconfig ];
 
   buildInputs =
     [ ghostscript texinfo imagemagick texi2html guile dblatex tex zip netpbm
-      python2 gettext flex perl bison fontconfig freetype pango
+      python2 gettext perl fontconfig freetype pango
       fontforge help2man groff t1utils
     ];
 
+  autoreconfPhase = "NOCONFIGURE=1 sh autogen.sh";
+
   enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Music typesetting system";
     homepage = "http://lilypond.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ marcweber yurrriq ];
     platforms = platforms.all;
   };
-
-  patches = [ ./findlib.patch ];
 }
diff --git a/pkgs/misc/lilypond/unstable.nix b/pkgs/misc/lilypond/unstable.nix
index e2c0dccb2e1..68f48a2db64 100644
--- a/pkgs/misc/lilypond/unstable.nix
+++ b/pkgs/misc/lilypond/unstable.nix
@@ -18,10 +18,4 @@ lilypond.overrideAttrs (oldAttrs: {
   meta = oldAttrs.meta // {
     broken = stdenv.isDarwin;
   };
-
-  configureFlags = [
-    "--disable-documentation"
-    "--with-urwotf-dir=${ghostscript}/share/ghostscript/fonts"
-    "--with-texgyre-dir=${gyre-fonts}/share/fonts/truetype/"
-  ];
 })
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ae8abd0092e..59aa969983b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -25159,13 +25159,9 @@ in
 
   lilypond-unstable = callPackage ../misc/lilypond/unstable.nix { };
 
-  lilypond-with-fonts = callPackage ../misc/lilypond/with-fonts.nix {
-    lilypond = lilypond-unstable;
-  };
+  lilypond-with-fonts = callPackage ../misc/lilypond/with-fonts.nix { };
 
-  openlilylib-fonts = callPackage ../misc/lilypond/fonts.nix {
-    lilypond = lilypond-unstable;
-  };
+  openlilylib-fonts = callPackage ../misc/lilypond/fonts.nix { };
 
   loop = callPackage ../tools/misc/loop { };