diff --git a/services/restic/home-pc.nix b/services/restic/home-pc.nix
index 859c1c9..ac301c7 100644
--- a/services/restic/home-pc.nix
+++ b/services/restic/home-pc.nix
@@ -94,14 +94,15 @@ in {
     ];
     timerConfig.OnCalendar = "0/6:00:00";
     extraPruneOpts = [ "--keep-last 4" ];
-  };
 
-  # Extra handling for dev folder to respect .gitignore files.
-  # Do not delete `~/dev-backup` since this leads to changing ctimes
-  # which would cause otherwise unchanged files to be backed up again.
-  # Since `--link-dest` is used, file contents won't be duplicated on disk.
-  systemd.services."restic-backups-full" = {
-    preStart = ''
+    # Extra handling for dev folder to respect .gitignore files.
+    # Do not delete `~/dev-backup` since this leads to changing ctimes
+    # which would cause otherwise unchanged files to be backed up again.
+    # Since `--link-dest` is used, file contents won't be duplicated on disk.
+    backupPrepareCommand = ''
+      # remove stale locks
+      ${pkgs.restic}/bin/restic unlock || true
+
       rm -rf /home/felschr/dev-backup
       ${pkgs.rsync}/bin/rsync \
         -a --delete \
diff --git a/services/restic/home-server.nix b/services/restic/home-server.nix
index d6ef279..ebd731f 100644
--- a/services/restic/home-server.nix
+++ b/services/restic/home-server.nix
@@ -41,5 +41,9 @@ in {
     ];
     timerConfig.OnCalendar = "0/6:00:00";
     extraPruneOpts = [ "--keep-last 4" ];
+    backupPrepareCommand = ''
+      # remove stale locks
+      ${pkgs.restic}/bin/restic unlock || true
+    '';
   };
 }