diff --git a/plugins/modules/ipagroup.py b/plugins/modules/ipagroup.py
index a502f935b35d26dd58c6ec9166d156d2192c9c41..2815b460dd8ffa9802d03f51813f3d36f208fe1c 100644
--- a/plugins/modules/ipagroup.py
+++ b/plugins/modules/ipagroup.py
@@ -314,6 +314,7 @@ def main():
     state = ansible_module.params_get("state")
 
     # Check parameters
+    invalid = []
 
     if state == "present":
         if len(names) != 1:
@@ -322,11 +323,6 @@ def main():
         if action == "member":
             invalid = ["description", "gid", "posix", "nonposix", "external",
                        "nomembers"]
-            for x in invalid:
-                if vars()[x] is not None:
-                    ansible_module.fail_json(
-                        msg="Argument '%s' can not be used with action "
-                        "'%s'" % (x, action))
 
     if state == "absent":
         if len(names) < 1:
@@ -336,11 +332,8 @@ def main():
                    "nomembers"]
         if action == "group":
             invalid.extend(["user", "group", "service", "externalmember"])
-        for x in invalid:
-            if vars()[x] is not None:
-                ansible_module.fail_json(
-                    msg="Argument '%s' can not be used with state '%s'" %
-                    (x, state))
+
+    ansible_module.params_fail_used_invalid(invalid, state, action)
 
     if external is False:
         ansible_module.fail_json(