diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index 4b6f77f5f8dd..7d101aac790b 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -14,10 +14,12 @@ in
 stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" {
   name = "OVMF-2012-03-13";
 
-  src = edk2.src;
-  
-  patchPhase = ''
-    rm -fR Conf BaseTools EdkCompatibilityPkg
+  unpackPhase = ''
+    for file in \
+      "${edk2.src}"/{OvmfPkg,UefiCpuPkg,MdeModulePkg,IntelFrameworkModulePkg,PcAtChipsetPkg,FatBinPkg,EdkShellBinPkg,MdePkg,ShellPkg,OptionRomPkg,IntelFrameworkPkg};
+    do
+      ln -sv "$file" .
+    done
   '';
 
   meta = {
diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix
index 047834bbb627..53517e853e94 100644
--- a/pkgs/development/compilers/edk2/default.nix
+++ b/pkgs/development/compilers/edk2/default.nix
@@ -64,7 +64,7 @@ edk2 = stdenv.mkDerivation {
         build
       ";
 
-      installPhase = "mv -v Build $out";
+      installPhase = "mv -v Build/*/* $out";
     } // (removeAttrs attrs [ "buildInputs" ] );
   };
 };