diff --git a/loopy/compiled.py b/loopy/compiled.py
index ac5ca1f1d1d096a637c44006f9a83f3bd8f353ec..2fdcd2f3d1685330d93535667c0d25ef052c54f5 100644
--- a/loopy/compiled.py
+++ b/loopy/compiled.py
@@ -364,7 +364,7 @@ def generate_array_arg_setup(gen, kernel, impl_arg_info, flags):
                         "queue, %s, allocator=allocator)"
                         % (arg.name, arg.name))
                 gen("_lpy_encountered_numpy = True")
-            gen("else:")
+            gen("elif %s is not None:" % arg.name)
             with Indentation(gen):
                 gen("_lpy_encountered_dev = True")