diff --git a/loopy/compiled.py b/loopy/compiled.py
index da659eaba5e3c7c8c99993946da1e7af5bb399bc..d8d127c0bc89f439569b8a016e485054c05f2bc2 100644
--- a/loopy/compiled.py
+++ b/loopy/compiled.py
@@ -310,13 +310,18 @@ def generate_value_arg_setup(gen, kernel, cl_kernel, impl_arg_info, options):
     work_around_arg_count_bug = False
     warn_about_arg_count_bug = False
 
-    from pyopencl.characterize import has_struct_arg_count_bug
-
     devices = cl_kernel.context.devices
 
-    count_bug_per_dev = [
-            has_struct_arg_count_bug(dev)
-            for dev in devices]
+    try:
+        from pyopencl.characterize import has_struct_arg_count_bug
+
+    except ImportError:
+        count_bug_per_dev = [False]*len(devices)
+
+    else:
+        count_bug_per_dev = [
+                has_struct_arg_count_bug(dev)
+                for dev in devices]
 
     if any(count_bug_per_dev):
         if all(count_bug_per_dev):