diff --git a/lib/ansible/modules/extras/cloud/xenserver_facts.py b/lib/ansible/modules/extras/cloud/xenserver_facts.py
index d679afce85..fdefee9f2e 100644
--- a/lib/ansible/modules/extras/cloud/xenserver_facts.py
+++ b/lib/ansible/modules/extras/cloud/xenserver_facts.py
@@ -28,7 +28,13 @@ author:
 '''
 
 import platform
-import XenAPI
+
+HAVE_XENAPI = False
+try:
+    import XenAPI
+    HAVE_XENAPI = True
+except ImportError:
+    pass
 
 EXAMPLES = '''
 - name: Gather facts from xenserver
@@ -158,6 +164,9 @@ def get_srs(session):
 def main():
     module = AnsibleModule({})
 
+    if not HAVE_XENAPI:
+        module.fail_json(changed=False, msg="python xen api required for this module")
+
     obj = XenServerFacts()
     try:
         session = get_xenapi_session()