diff --git a/tasks/checks.yml b/tasks/checks.yml
index c5b05d1831be69e1d46dcbd7a5a94587271df5ab..35838d313cf639bbdfec0f3d38a9e76da1346b82 100644
--- a/tasks/checks.yml
+++ b/tasks/checks.yml
@@ -26,11 +26,13 @@
     - name: Generate an array of existing PHP versions
       set_fact:
         php_versions_existing: "{{ php_versions_existing | default([]) }} + [ '{{ existing_version.key }}' ]"
-      when: existing_version.value.state == "present"
       loop: "{{ ansible_local.phpquery.versions | dict2items }}"
       loop_control:
         loop_var: existing_version
         label: "{{ existing_version.key }}"
+      when:
+        - ansible_local.phpquery.versions is defined
+        - existing_version.value.state == "present"
 
     - name: Debug php_versions_existing array
       debug:
@@ -46,72 +48,80 @@
         loop_var: proposed_version
         label: "{{ proposed_version.key }}"
 
-    - name: Debug php_versions_proposed array
-      debug:
-        var: php_versions_proposed
-        verbosity: 2
+    - name: Proposed PHP versions checks
+      block:
+
+        - name: Debug php_versions_proposed array
+          debug:
+            var: php_versions_proposed
+            verbosity: 2
+
+        - name: Check that for each proposed version of PHP there are not packages due to be present and absent at the same time
+          include_tasks: pkg_checks.yml
+          loop: "{{ php_versions_proposed }}"
+          loop_control:
+            loop_var: version
+            label: "{{ version }}"
+
+        - name: Include SAPI checks for PHP proposed versions
+          include_tasks: sapi_checks.yml
+          loop: "{{ php_versions_proposed }}"
+          loop_control:
+            loop_var: version
+            label: "{{ version }}"
+          when: php_versions[version].sapis is defined
+
+        - name: Generate an array of PHP versions to remove
+          set_fact:
+            php_versions_remove: "{{ php_versions_existing | difference(php_versions_proposed) }}"
+          when: ( php_versions_existing | difference(php_versions_proposed) ) != []
+
+        - name: Checks for PHP versions due to be removed
+          block:
+
+            - name: Debug php_versions_remove array
+              debug:
+                var: php_versions_remove
+                verbosity: 2
+
+            - name: Include SAPI checks for PHP versions due to be removed
+              include_tasks: sapi_checks.yml
+              loop: "{{ php_versions_remove }}"
+              loop_control:
+                loop_var: version
+                label: "{{ version }}"
+              when: php_versions[version].sapis is defined 
+
+          when:  php_versions_remove is defined ) and ( php_versions_remove != [] )
 
-    - name: Check that for each proposed version of PHP there are not packages due to be present and absent at the same time
-      include_tasks: pkg_checks.yml
-      loop: "{{ php_versions_proposed }}"
-      loop_control:
-        loop_var: version
-        label: "{{ version }}"
       when: ( php_versions_proposed is defined ) and ( php_versions_proposed != [] )
 
-    - name: Generate an array of PHP versions to remove
-      set_fact:
-        php_versions_remove: "{{ php_versions_existing | difference(php_versions_proposed) }}"
-      when: ( php_versions_existing | difference(php_versions_proposed) ) != []
-
-    - name: Debug php_versions_remove array
-      debug:
-        var: php_versions_remove
-        verbosity: 2
-
     - name: Generate an array of absent PHP versions
       set_fact:
         php_versions_absent: "{{ php_versions_absent | default([]) }} + [ '{{ absent_version.key }}' ]"
-      when: absent_version.value.state == "absent"
       loop: "{{ php_versions | dict2items }}"
       loop_control:
         loop_var: absent_version
         label: "{{ absent_version.key }}"
+      when: absent_version.value.state == "absent"
 
-    - name: Debug php_versions_absent array
-      debug:
-        var: php_versions_absent
-        verbosity: 2
+    - name: Absent PHP versions checks
+      block:
 
-    - name: Include SAPI checks for PHP versions due to be removed
-      include_tasks: sapi_checks.yml
-      loop: "{{ php_versions_remove }}"
-      loop_control:
-        loop_var: version
-        label: "{{ version }}"
-      when:
-        - ( php_versions[version].sapis is defined 
-        - ( php_versions_remove is defined ) and ( php_versions_remove != [] )
+        - name: Debug php_versions_absent array
+          debug:
+            var: php_versions_absent
+            verbosity: 2
 
-    - name: Include SAPI checks for PHP versions due to be absent
-      include_tasks: sapi_checks.yml
-      loop: "{{ php_versions_absent }}"
-      loop_control:
-        loop_var: version
-        label: "{{ version }}"
-      when:
-        - ( php_versions[version].sapis is defined 
-        - ( php_versions_absent is defined ) and ( php_versions_absent != [] )
+        - name: Include SAPI checks for PHP versions due to be absent
+          include_tasks: sapi_checks.yml
+          loop: "{{ php_versions_absent }}"
+          loop_control:
+            loop_var: version
+            label: "{{ version }}"
+          when: php_versions[version].sapis is defined 
 
-    - name: Include SAPI checks for PHP proposed versions
-      include_tasks: sapi_checks.yml
-      loop: "{{ php_versions_proposed }}"
-      loop_control:
-        loop_var: version
-        label: "{{ version }}"
-      when:
-        - ( php_versions[version].sapis is defined )
-        - ( php_versions_proposed is defined ) and ( php_versions_proposed != [] )
+      when: ( php_versions_absent is defined ) and ( php_versions_absent != [] )
 
     # - name: Debug fail
     #   fail: