diff --git a/nix/default.nix b/nix/default.nix
index f876508f282d19d2e57ec1edd8660aac857d463d..e6b4407e808a5362913d3aff0b844a0a15d2f403 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -2,8 +2,12 @@
  { pkgs, stdenv, src ? ../., opam2nix,
    ocaml_version ? "ocamlPackages_latest.ocaml", plugins ? { } }:
 
+let old_pkgs = pkgs; in
+
 let frama_clang_build =
-  { llvm_version,
+  { pkgs?old_pkgs,
+    stdenv?pkgs.stdenv,
+    llvm_version,
     llvm?pkgs.${"llvm_"+llvm_version},
     llvm_package?pkgs.${"llvmPackages_"+llvm_version} } :
 
@@ -19,6 +23,16 @@ let frama_clang_build =
      '';
    });
 in
+let newer_nix =  pkgs.fetchFromGitHub {
+    owner = "nixos";
+    repo = "nixpkgs";
+    rev = "bb46a6eb7c6a0faf08263e0564c51910bfbd83c7";
+    sha256 = "15w1321wbm3vpk4qmj6d9pz3y522c0q32gkccj82c3fandb9ppj6";
+    fetchSubmodules = true;
+};
+in
+let new_pkgs = import newer_nix {};
+in
 (frama_clang_build { llvm_version="9"; })
 // { on-llvm10 = (frama_clang_build { llvm_version="10"; });}
-// { on-llvm11 = (frama_clang_build { llvm_version="11"; });}
+// { on-llvm11 = (frama_clang_build { pkgs = new_pkgs; llvm_version="11";});}