diff --git a/src/libcmd/installables.cc b/src/libcmd/installables.cc
index fe52912cf95ad30badd11724daeb292e272b333d..540e53eee4ced53287715529661f6d664504f0d2 100644
--- a/src/libcmd/installables.cc
+++ b/src/libcmd/installables.cc
@@ -575,8 +575,6 @@ std::shared_ptr<flake::LockedFlake> InstallableFlake::getLockedFlake() const
 {
     if (!_lockedFlake) {
         _lockedFlake = std::make_shared<flake::LockedFlake>(lockFlake(*state, flakeRef, lockFlags));
-        _lockedFlake->flake.config.apply();
-        // FIXME: send new config to the daemon.
     }
     return _lockedFlake;
 }
diff --git a/src/libexpr/flake/flake.cc b/src/libexpr/flake/flake.cc
index 8e6f069498ce7ea00a716d8b0daa1fa4f58865a4..b57679d3b57b3f28ba967cd5450ceca40f8fb443 100644
--- a/src/libexpr/flake/flake.cc
+++ b/src/libexpr/flake/flake.cc
@@ -298,6 +298,9 @@ LockedFlake lockFlake(
 
     auto flake = getFlake(state, topRef, lockFlags.useRegistries, flakeCache);
 
+    flake.config.apply();
+    // FIXME: send new config to the daemon.
+
     try {
 
         // FIXME: symlink attack