diff --git a/utils/templates/ipamodule+member.py.in b/utils/templates/ipamodule+member.py.in
index 1515ccc194ae5e10d66adcc9e408b571f3e8dd60..dc682cf9eeb7705fd3848a699171320a567e03b7 100644
--- a/utils/templates/ipamodule+member.py.in
+++ b/utils/templates/ipamodule+member.py.in
@@ -36,6 +36,7 @@ short description: Manage FreeIPA $name
 description: Manage FreeIPA $name and $name members
 extends_documentation_fragment:
   - ipamodule_base_docs
+  - ipamoudle_base_docs.delete_continue
 options:
   name:
     description: The list of $name name strings.
@@ -152,6 +153,7 @@ def main():
                        choices=["present", "absent"]),
         ),
         supports_check_mode=True,
+        ipa_module_options=["delete_continue"]
     )
 
     ansible_module._ansible_debug = True
@@ -163,9 +165,14 @@ def main():
 
     # present
     PARAMETER1 = ansible_module.params_get("PARAMETER1")
-    PARAMETER2 = ansible_module.params_get("PARAMETER2")
+    # Note: some parameters must be compared in a case insensitive way,
+    # or are transliterated into its lowercase version by IPA API. For
+    # these parameters, use IPAAnsibleModule.params_get_lowercase.
+    PARAMETER2 = ansible_module.params_get_lowercase("PARAMETER2")
     action = ansible_module.params_get("action")
 
+    delete_continue = ansible_module.params_get("delete_continue")
+
     # state
     state = ansible_module.params_get("state")
 
@@ -202,6 +209,9 @@ def main():
             # Make sure $name exists
             res_find = find_$name(ansible_module, name)
 
+            # add/del lists
+            PARAMETER2_add, PARAMETER2_del = [], []
+
             # Create command
             if state == "present":
 
@@ -228,19 +238,6 @@ def main():
                         PARAMETER2_add, PARAMETER2_del = gen_add_del_lists(
                                 PARAMETER2, res_find.get("member_PARAMETER2"))
 
-                        # Add members
-                        if len(PARAMETER2_add) > 0:
-                            commands.append([name, "$name_add_member",
-                                             {
-                                                 "PARAMETER2": PARAMETER2_add,
-                                             }])
-                        # Remove members
-                        if len(PARAMETER2_del) > 0:
-                            commands.append([name, "$name_remove_member",
-                                             {
-                                                 "PARAMETER2": PARAMETER2_del,
-                                             }])
-
                 elif action == "member":
                     if res_find is None:
                         ansible_module.fail_json(
@@ -248,21 +245,17 @@ def main():
 
                     # Reduce add lists for PARAMETER2
                     # to new entries only that are not in res_find.
-                    if PARAMETER2 is not None and \
-                       "API_PARAMETER2_NAME" in res_find:
-                        PARAMETER2 = gen_add_list(
-                            PARAMETER2, res_find["API_PARAMETER2_NAME"])
-
                     if PARAMETER2 is not None:
-                        commands.append([name, "$name_add_member",
-                                         {
-                                             "PARAMETER2": PARAMETER2,
-                                         }])
+                        PARAMETER2_add = gen_add_list(
+                            PARAMETER2, res_find.get("member_PARAMETER2"))
+
 
             elif state == "absent":
                 if action == "$name":
                     if res_find is not None:
-                        commands.append([name, "$name_del", {}])
+                        commands.append(
+                            [name, "$name_del", {"continue": delete_continue}]
+                        )
 
                 elif action == "member":
                     if res_find is None:
@@ -272,18 +265,29 @@ def main():
                     # Reduce del lists of member_host and member_hostgroup,
                     # to the entries only that are in res_find.
                     if PARAMETER2 is not None:
-                        PARAMETER2 = gen_intersection_list(
-                            PARAMETER2, res_find.get("API_PARAMETER2_NAME"))
-
-                    if PARAMETER2 is not None:
-                        commands.append([name, "$name_remove_member",
-                                         {
-                                             "PARAMETER2": PARAMETER2,
-                                         }])
+                        PARAMETER2_del = gen_intersection_list(
+                            PARAMETER2, res_find.get("member_PARAMETER2"))
 
             else:
                 ansible_module.fail_json(msg="Unkown state '%s'" % state)
 
+            # Member management
+
+            # Add members
+            if PARAMETER2_add:
+                commands.append([name, "$name_add_member",
+                                 {
+                                     "PARAMETER2": PARAMETER2_add,
+                                 }])
+
+            # Remove members
+
+            if PARAMETER2_del:
+                commands.append([name, "$name_remove_member",
+                                 {
+                                     "PARAMETER2": PARAMETER2_del,
+                                     "continue": delete_continue,
+                                 }])
 
         # Execute commands
 
diff --git a/utils/templates/ipamodule.py.in b/utils/templates/ipamodule.py.in
index 00750f83b199e2f8bab163daf57c7ee9f80b5d75..07fe2ac470d2ed61bb351791bedabed41ff5b7f0 100644
--- a/utils/templates/ipamodule.py.in
+++ b/utils/templates/ipamodule.py.in
@@ -36,6 +36,7 @@ short description: Manage FreeIPA $name
 description: Manage FreeIPA $name
 extends_documentation_fragment:
   - ipamodule_base_docs
+  - ipamodule_base_docs.delete_continue
 options:
   name:
     description: The list of $name name strings.
@@ -124,6 +125,7 @@ def main():
                        choices=["present", "absent"]),
         ),
         supports_check_mode=True,
+        ipa_module_options=["delete_continue"],
     )
 
     ansible_module._ansible_debug = True
@@ -135,7 +137,12 @@ def main():
 
     # present
     PARAMETER1 = ansible_module.params_get("PARAMETER1")
-    PARAMETER2 = ansible_module.params_get("PARAMETER2")
+    # Note: some parameters must be compared in a case insensitive way,
+    # or are transliterated into its lowercase version by IPA API. For
+    # these parameters, use IPAAnsibleModule.params_get_lowercase.
+    PARAMETER2 = ansible_module.params_get_lowercase("PARAMETER2")
+
+    delete_continue = ansible_module.params_get("delete_continue")
 
     # state
     state = ansible_module.params_get("state")
@@ -188,7 +195,9 @@ def main():
 
             elif state == "absent":
                 if res_find is not None:
-                    commands.append([name, "$name_del", {}])
+                    commands.append(
+                        [name, "$name_del", {"continue": delete_continue}]
+                    )
 
             else:
                 ansible_module.fail_json(msg="Unkown state '%s'" % state)