diff --git a/tasks/diagnose-unpingable.yml b/tasks/diagnose-unpingable.yml
index a823794e4193e2b704b214d79349dc868c350cd6..5da41c94ad3b5b9b52d1209011f767603acb38ad 100644
--- a/tasks/diagnose-unpingable.yml
+++ b/tasks/diagnose-unpingable.yml
@@ -4,16 +4,10 @@
 # being unavailable, or Python being an unsupported version.
 #
 ---
-# If the error has a defined error message and is not related to Python not
-# being found, then display that message
-- fail:
-    msg: '{{ _can_ping.msg }}'
-  when: _can_ping.msg is defined and (_can_ping.rc is not defined or _can_ping.rc != 127)
-
 # If the error is related to Python not being found, then try to find the
 # available Python interpreters
 - name: Python is not found
-  when: _can_ping.rc is defined and _can_ping.rc == 127
+  when: _can_ping.module_stdout is defined and ( 'python' in _can_ping.module_stdout and 'not found' in _can_ping.module_stdout )
   block:
     - include_tasks: '{{ role_path }}/tasks/find-python-executable.yml'
     - fail:
@@ -21,6 +15,11 @@
               Please set 'ansible_python_interpreter' to an executable Python interpreter.\n
               The host has these available: ( {{ _python_interpreters | join(' , ') }} )"
 
+# If the error has a defined error message, then display that message
+- fail:
+    msg: '{{ _can_ping.msg }}'
+  when: _can_ping.msg is defined
+
 # This block is a catchall that runs whenever an unanticipated error occurs
 - name: Something Unexpected Happened
   block: