diff --git a/plugins/modules/ipadnsconfig.py b/plugins/modules/ipadnsconfig.py
index d363d37c43df6efa81e955ddd346de8491984f6f..7b7432020d8313d3754d8be2a2b4be5776f6198e 100644
--- a/plugins/modules/ipadnsconfig.py
+++ b/plugins/modules/ipadnsconfig.py
@@ -173,7 +173,10 @@ def gen_args(module, state, action, dnsconfig, forwarders, forward_policy,
         _args['idnsforwardpolicy'] = forward_policy
 
     if allow_sync_ptr is not None:
-        _args['idnsallowsyncptr'] = 'TRUE' if allow_sync_ptr else 'FALSE'
+        if module.ipa_check_version("<", "4.9.10"):
+            _args['idnsallowsyncptr'] = "TRUE" if allow_sync_ptr else "FALSE"
+        else:
+            _args['idnsallowsyncptr'] = allow_sync_ptr
 
     return _args
 
@@ -199,7 +202,8 @@ def main():
                         choices=["member", "dnsconfig"]),
             state=dict(type="str", default="present",
                        choices=["present", "absent"]),
-        )
+        ),
+        supports_check_mode=True,
     )
 
     ansible_module._ansible_debug = True
diff --git a/tests/azure/templates/variables.yaml b/tests/azure/templates/variables.yaml
index f200416bf27feff11ac1a4972d19acf7de617364..b6e1686806c728654b5e2ff21a7d5e58f0e6f127 100644
--- a/tests/azure/templates/variables.yaml
+++ b/tests/azure/templates/variables.yaml
@@ -16,5 +16,5 @@ variables:
   # ipa_enabled_tests: >-
   ipa_disabled_modules: >-
     dnsconfig,
-    dnsforwardzone,
-  # ipa_disabled_tests: >-
+  ipa_disabled_tests: >-
+    test_dnsconfig_forwarders_ports
diff --git a/tests/dnsconfig/test_dnsconfig.yml b/tests/dnsconfig/test_dnsconfig.yml
index b12d56fb239a9c4b13e1f882bd50b02daeb7c5a7..cadfa3370e89b84af3ad86d36a575de707a5a0ba 100644
--- a/tests/dnsconfig/test_dnsconfig.yml
+++ b/tests/dnsconfig/test_dnsconfig.yml
@@ -13,14 +13,11 @@
       forwarders:
         - ip_address: 8.8.8.8
         - ip_address: 8.8.4.4
-        - ip_address: 2001:4860:4860::8888
-        - ip_address: 2001:4860:4860::8888
-          port: 53
       state: absent
       action: member
 
   # Tests.
-  - name: Set config to invalid IPv4.
+  - name: Set forward with invalid IPv4.
     ipadnsconfig:
       ipaadmin_password: SomeADMINpassword
       ipaapi_context: "{{ ipa_context | default(omit) }}"
@@ -54,8 +51,6 @@
       forwarders:
         - ip_address: 8.8.8.8
         - ip_address: 8.8.4.4
-        - ip_address: 2001:4860:4860::8888
-          port: 53
       forward_policy: only
       allow_sync_ptr: yes
     register: result
@@ -68,8 +63,6 @@
       forwarders:
         - ip_address: 8.8.8.8
         - ip_address: 8.8.4.4
-        - ip_address: 2001:4860:4860::8888
-          port: 53
       forward_policy: only
       allow_sync_ptr: yes
     register: result
@@ -97,14 +90,15 @@
     register: result
     failed_when: result.changed or result.failed
 
-  - name: Ensure forwarder 8.8.4.4 is present.
+  - name: Check if forwarder 8.8.4.4 is present.
     ipadnsconfig:
       ipaadmin_password: SomeADMINpassword
       ipaapi_context: "{{ ipa_context | default(omit) }}"
       forwarders:
         - ip_address: 8.8.4.4
+    check_mode: yes
     register: result
-    failed_when: not result.changed or result.failed
+    failed_when: result.changed or result.failed
 
   - name: Ensure forwarder 8.8.8.8 is present.
     ipadnsconfig:
@@ -115,35 +109,16 @@
     register: result
     failed_when: not result.changed or result.failed
 
-  - name: Ensure forwarder 8.8.4.4 is present.
+  - name: Check forwarder 8.8.4.4 is still present.
     ipadnsconfig:
       ipaadmin_password: SomeADMINpassword
       ipaapi_context: "{{ ipa_context | default(omit) }}"
       forwarders:
         - ip_address: 8.8.4.4
+    check_mode: yes
     register: result
     failed_when: not result.changed or result.failed
 
-  - name: Ensure forwarders are absent.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.4.4
-        - ip_address: 8.8.8.8
-    register: result
-    failed_when: not result.changed or result.failed
-
-  - name: Ensure forwarders are absent, again.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.4.4
-        - ip_address: 8.8.8.8
-    register: result
-    failed_when: result.changed or result.failed
-
   - name: Disable global forwarders.
     ipadnsconfig:
       ipaadmin_password: SomeADMINpassword
@@ -208,97 +183,6 @@
     register: result
     failed_when: result.changed or result.failed
 
-  - name: Ensure all forwarders are absent.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.8.8
-        - ip_address: 8.8.4.4
-        - ip_address: 2001:4860:4860::8888
-          port: 53
-      state: absent
-      action: member
-    register: result
-    failed_when: not result.changed or result.failed
-
-  - name: Ensure all forwarders are absent, again.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.8.8
-        - ip_address: 8.8.4.4
-        - ip_address: 2001:4860:4860::8888
-          port: 53
-      state: absent
-      action: member
-    register: result
-    failed_when: result.changed or result.failed
-
-  - name: Ensure forwarder is present.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.8.8
-    register: result
-    failed_when: not result.changed or result.failed
-
-  - name: Ensure forwarders is not present.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.4.4
-    check_mode: yes
-    register: result
-    failed_when: not result.changed or result.failed
-
-  - name: Ensure forwarders are present.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.4.4
-        - ip_address: 8.8.8.8
-      action: member
-    register: result
-    failed_when: not result.changed or result.failed
-
-  - name: Ensure forwarders are present, again.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.4.4
-        - ip_address: 8.8.8.8
-      action: member
-    register: result
-    failed_when: result.changed or result.failed
-
-  - name: Ensure another forwarder is present.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.4.4
-      action: member
-    register: result
-    failed_when: result.changed or result.failed
-
-  - name: Ensure forwarders are present.
-    ipadnsconfig:
-      ipaadmin_password: SomeADMINpassword
-      ipaapi_context: "{{ ipa_context | default(omit) }}"
-      forwarders:
-        - ip_address: 8.8.4.4
-        - ip_address: 8.8.8.8
-      action: member
-    register: result
-    failed_when: result.changed or result.failed
-
-  # Cleanup.
   - name: Ensure forwarders are absent.
     ipadnsconfig:
       ipaadmin_password: SomeADMINpassword
@@ -306,8 +190,5 @@
       forwarders:
         - ip_address: 8.8.8.8
         - ip_address: 8.8.4.4
-        - ip_address: 2001:4860:4860::8888
-        - ip_address: 2001:4860:4860::8888
-          port: 53
       state: absent
       action: member
diff --git a/tests/dnsconfig/test_dnsconfig_forwarders_ports.yml b/tests/dnsconfig/test_dnsconfig_forwarders_ports.yml
new file mode 100644
index 0000000000000000000000000000000000000000..11c3e3962e8d0a98d0e25e6f06a0e221d0fe4d7a
--- /dev/null
+++ b/tests/dnsconfig/test_dnsconfig_forwarders_ports.yml
@@ -0,0 +1,81 @@
+---
+- name: Test dnsconfig forwarders with custom ports
+  hosts: "{{ ipa_test_host | default('ipaserver') }}"
+  become: true
+  gather_facts: no
+
+  tasks:
+  - block:
+    # Setup.
+    - name: Ensure forwarder with custom port is absent.
+      ipadnsconfig:
+        ipaadmin_password: SomeADMINpassword
+        ipaapi_context: "{{ ipa_context | default(omit) }}"
+        forwarders:
+          - ip_address: 2001:4860:4860::8888
+            port: 53
+        state: absent
+        action: member
+
+    # Tests.
+
+    - name: Ensure forwarder with custom port is present.
+      ipadnsconfig:
+        ipaadmin_password: SomeADMINpassword
+        ipaapi_context: "{{ ipa_context | default(omit) }}"
+        forwarders:
+          - ip_address: 2001:4860:4860::8888
+            port: 53
+        state: present
+        action: member
+      register: result
+      failed_when: not result.changed or result.failed
+
+    - name: Ensure forwarder with custom port is present, again.
+      ipadnsconfig:
+        ipaadmin_password: SomeADMINpassword
+        ipaapi_context: "{{ ipa_context | default(omit) }}"
+        forwarders:
+          - ip_address: 2001:4860:4860::8888
+            port: 53
+        state: present
+        action: member
+      register: result
+      failed_when: result.changed or result.failed
+
+    - name: Ensure forwarder with custom port is absent.
+      ipadnsconfig:
+        ipaadmin_password: SomeADMINpassword
+        ipaapi_context: "{{ ipa_context | default(omit) }}"
+        forwarders:
+          - ip_address: 2001:4860:4860::8888
+            port: 53
+        state: absent
+        action: member
+      register: result
+      failed_when: not result.changed or result.failed
+
+    - name: Ensure forwarder with custom port is absent, again.
+      ipadnsconfig:
+        ipaadmin_password: SomeADMINpassword
+        ipaapi_context: "{{ ipa_context | default(omit) }}"
+        forwarders:
+          - ip_address: 2001:4860:4860::8888
+            port: 53
+        state: absent
+        action: member
+      register: result
+      failed_when: result.changed or result.failed
+
+    always:
+
+    # Cleanup.
+    - name: Ensure forwarder with custom port is absent.
+      ipadnsconfig:
+        ipaadmin_password: SomeADMINpassword
+        ipaapi_context: "{{ ipa_context | default(omit) }}"
+        forwarders:
+          - ip_address: 2001:4860:4860::8888
+            port: 53
+        state: absent
+        action: member