diff --git a/pkgs/development/tools/boomerang/default.nix b/pkgs/development/tools/boomerang/default.nix
new file mode 100644
index 000000000000..3cfa5e8eb5bc
--- /dev/null
+++ b/pkgs/development/tools/boomerang/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, cmake, boehmgc, expat, cppunit }:
+
+stdenv.mkDerivation {
+  name = "boomerang-1.0pre";
+
+  buildInputs = [ cmake boehmgc expat cppunit ];
+
+  installPhase = ''
+    for loaderfile in loader/*.so
+    do
+      install -vD "$loaderfile" "$out/lib/$(basename "$loaderfile")"
+    done
+
+    install -vD boomerang "$out/bin/boomerang"
+  '';
+
+  src = fetchgit {
+    url = "git://github.com/andrew-aladev/boomerang.git";
+    rev = "c0ad5c1f64091725b4ca7f63c57edd3d3bc74a57";
+    sha256 = "76d8512db672bad1322943172046e4b450c5fa509e4141457b3dc60493852fcc";
+  };
+
+  meta = {
+    homepage = http://boomerang.sourceforge.net/;
+    license = stdenv.lib.licenses.bsd3;
+    description = "A general, open source, retargetable decompiler";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 79bd75833174..5cbc0f0fbeaf 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -437,6 +437,8 @@ let
 
   bfr = callPackage ../tools/misc/bfr { };
 
+  boomerang = callPackage ../development/tools/boomerang { };
+
   bootchart = callPackage ../tools/system/bootchart { };
 
   bsod = callPackage ../misc/emulators/bsod { };