diff --git a/src/nix/registry.cc b/src/nix/registry.cc
index 16d7e511f54978d2ee4937a0bf345f9936cfadd1..ebee4545c42ab644115029e44507822f89a22697 100644
--- a/src/nix/registry.cc
+++ b/src/nix/registry.cc
@@ -111,6 +111,7 @@ struct CmdRegistryPin : virtual Args, EvalCommand
         fetchers::Attrs extraAttrs;
         if (ref.subdir != "") extraAttrs["dir"] = ref.subdir;
         userRegistry->add(ref.input, resolved, extraAttrs);
+        userRegistry->write(fetchers::getUserRegistryPath());
     }
 };