diff --git a/saveTools/fc_edit_save.py b/saveTools/fc_edit_save.py
index 9868a8a245b581d29419100ea026c0fda6dbb9c4..3925dfcf2caa96433c0f18cef7684120e599e8f5 100755
--- a/saveTools/fc_edit_save.py
+++ b/saveTools/fc_edit_save.py
@@ -1027,8 +1027,9 @@ def generate_slave_id(game_vars):
     """Returns the next available slave ID."""
     # for compatibility, use the same technique as the Javascript code
     all_slave_ids = []
-    for slist in ["slaves", "tanks", "cribs"]:
+    for slist in ["slaves", "cribs"]:
         all_slave_ids += [slave["ID"] for slave in game_vars[slist]]
+        all_slave_ids += [slave["ID"] for slave in game_vars["incubator"]["tanks"]]
     while game_vars["IDNumber"] in all_slave_ids:
         game_vars["IDNumber"] += 1
     # ugly way to do the same as "return V.IDNumber++;" in src/js/utilsFC.js
@@ -1114,11 +1115,11 @@ def clone_slave(game_vars, orig_slave, same_parents=False):
         clone_num += 1
         new_slave["birthName"] = f"{base_name} {clone_num}"
     new_slave["assignment"] = "rest"
-    if game_vars["JobIDArray"]:
-        if "rest" in game_vars["JobIDArray"]:
-            game_vars["JobIDArray"]["rest"].append(new_slave["ID"])
+    if game_vars["JobIDMap"]:
+        if "rest" in game_vars["JobIDMap"]:
+            game_vars["JobIDMap"]["rest"].append(new_slave["ID"])
         else:
-            game_vars["JobIDArray"]["rest"] = [new_slave["ID"]]
+            game_vars["JobIDMap"]["rest"] = [new_slave["ID"]]
     if game_vars["slaveIndices"]:
         max_val = max(game_vars["slaveIndices"].values())
         game_vars["slaveIndices"][str(new_slave["ID"])] = max_val + 1