diff --git a/pkgs/applications/networking/browsers/firefox/5.nix b/pkgs/applications/networking/browsers/firefox/5.nix
new file mode 100644
index 0000000..e20f94e
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/5.nix
@@ -0,0 +1,165 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
+, yasm, mesa, sqlite
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Shiretoko" or whatever, enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+}:
+
+assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+
+rec {
+
+  firefoxVersion = "5.0";
+
+  xulVersion = firefoxVersion; # this attribute is used by other packages
+
+
+  src = fetchurl {
+    url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
+    sha256 = "0i6zxvhvf717bzz3mwlbvrk601k81r38fym0fv2nlvr9r207vybb";
+  };
+
+
+  commonConfigureFlags =
+    [ "--enable-optimize"
+      "--disable-debug"
+      "--enable-strip"
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      "--with-system-bz2"
+      "--with-system-nspr"
+      # "--with-system-nss"
+      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+      "--enable-system-cairo"
+      "--enable-system-sqlite"
+      "--disable-crashreporter"
+      "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-installer"
+      "--disable-updater"
+    ];
+
+
+  xulrunner = stdenv.mkDerivation rec {
+    name = "xulrunner-${xulVersion}";
+    
+    inherit src;
+
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
+        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
+        alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa sqlite
+        xlibs.libXScrnSaver xlibs.scrnsaverproto
+        xlibs.libXext xlibs.xextproto
+      ];
+
+    configureFlags =
+      [ "--enable-application=xulrunner"
+        "--disable-javaxpcom"
+      ] ++ commonConfigureFlags;
+
+    enableParallelBuilding = true;
+      
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    # !!! Temporary hack.
+    preBuild =
+      ''
+        export NIX_ENFORCE_PURITY=
+      '';
+
+    installFlags = "SKIP_GRE_REGISTRATION=1";
+
+    postInstall = ''
+      # Fix some references to /bin paths in the Xulrunner shell script.
+      substituteInPlace $out/bin/xulrunner \
+          --replace /bin/pwd "$(type -tP pwd)" \
+          --replace /bin/ls "$(type -tP ls)"
+
+      # Fix run-mozilla.sh search
+      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
+      echo libDir: $libDir
+      test -n "$libDir"
+      cd $out/bin
+      mv xulrunner ../lib/$libDir/
+
+      for i in $out/lib/$libDir/*; do 
+          file $i;
+          if file $i | grep executable &>/dev/null; then 
+              ln -s $i $out/bin
+          fi;
+      done;
+      rm -f $out/bin/run-mozilla.sh
+    ''; # */
+
+    meta = {
+      description = "Mozilla Firefox XUL runner";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = { inherit gtk; version = xulVersion; };
+  };
+
+
+  firefox = stdenv.mkDerivation rec {
+    name = "firefox-${firefoxVersion}";
+
+    inherit src;
+
+    enableParallelBuilding = true;
+      
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
+        xlibs.pixman yasm mesa sqlite
+      ];
+
+    propagatedBuildInputs = [xulrunner];
+
+    configureFlags =
+      [ "--enable-application=browser"
+        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+        "--enable-chrome-format=jar"
+      ]
+      ++ commonConfigureFlags
+      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
+
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":" 
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    postInstall =
+      ''
+        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
+      ''; # */
+
+    meta = {
+      description = "Mozilla Firefox - the browser, reloaded";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = {
+      inherit gtk xulrunner nspr;
+      isFirefox3Like = true;
+    };
+  };
+}
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
index d7f97cd..2d1cc71 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-10/default.nix
@@ -42,9 +42,9 @@ let
         throw "no x86_64 debugging version available"
       else {
         # -> http://labs.adobe.com/downloads/flashplayer10.html
-        version = "10.1_p2-r092710";
-        url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer_square_p2_64bit_linux_092710.tar.gz;
-        sha256 = "188dn08n3rb6w3hzq4snqvip5njxdyc8k8arp8xnlqw331lfvapx";
+        version = "10.3.181.34";
+        url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_2_p3_64bit_linux_111710.tar.gz;
+        sha256 = "1w2zs2f0q1vpx4ia9pj1k4p830dwz7ypyn302mi48wcpz1wzc1gg";
       }
     else if stdenv.system == "i686-linux" then
       if debug then {
diff --git a/pkgs/development/compilers/yasm/default.nix b/pkgs/development/compilers/yasm/default.nix
index 19431de..2fe4436 100644
--- a/pkgs/development/compilers/yasm/default.nix
+++ b/pkgs/development/compilers/yasm/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "yasm-1.0.0";
-  
+  name = "yasm-1.1.0";
+
   src = fetchurl {
-    url = http://www.tortall.net/projects/yasm/releases/yasm-1.0.0.tar.gz;
-    sha256 = "0nd95r9y5r3p9mvdyj1yhvlz9zjw0id1g470c7i1p3p0x0n6zc06";
+    url = "http://www.tortall.net/projects/yasm/releases/${name}.tar.gz";
+    sha256 = "0cn2f4v16n4li0h5ar7a0win0xa17q323hjgbknk031x5xc6pmg5";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index d7e8d9a..7ccb37d 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -3,18 +3,18 @@
 assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation {
-  name = "sqlite-3.7.6.2";
+  name = "sqlite-3.7.7.1";
 
   src = fetchurl {
-    url = http://www.sqlite.org/sqlite-autoconf-3070602.tar.gz;
-    sha256 = "10gwjdjzf8r2k42vlzx79l4bhcj4h5wpjfqpshq75y4g1prndajk";
+    url = http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz;
+    sha256 = "1pvf72gb6yidc4zjml3k6kwhlvvhbgmbm8hfin9y5jvvbyr3dk3x";
   };
 
   buildInputs = [ readline ncurses ];
-  
+
   configureFlags = "--enable-threadsafe";
 
-  NIX_CFLAGS_COMPILE = "-DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SECURE_DELETE=1";
+  NIX_CFLAGS_COMPILE = "-DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1";
   NIX_CFLAGS_LINK = if readline != null then "-lncurses" else "";
 
   meta = {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3cb5013..987153f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6242,7 +6242,7 @@ let
 
   filelight = newScope pkgs.kde4 ../applications/misc/filelight { };
 
-  firefox = firefox40Pkgs.firefox;
+  firefox = firefox5Pkgs.firefox;
 
   firefoxWrapper = firefox40Wrapper;
 
@@ -6260,6 +6260,13 @@ let
 
   firefox40Wrapper = wrapFirefox firefox40Pkgs.firefox "firefox" "";
 
+  firefox5Pkgs = callPackage ../applications/networking/browsers/firefox/5.nix {
+    inherit (gtkLibs) gtk pango;
+    inherit (gnome) libIDL;
+  };
+
+  firefox5Wrapper = wrapFirefox firefox5Pkgs.firefox "firefox" "";
+
   flac = callPackage ../applications/audio/flac { };
 
   flashplayer = flashplayer10;
