diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py
index 97a4771c13ea0b2fd1e38ee348a867b19aa61ab9..ba75ac95f9861e94bc5685a78c936c78fe33b997 100644
--- a/loopy/kernel/creation.py
+++ b/loopy/kernel/creation.py
@@ -792,6 +792,10 @@ def parse_instructions(instructions, defines):
                     | frozenset([predicate]))
 
             insn_options_stack.append(options)
+
+            #add to the if_stack
+            if_options = options.copy()
+            if_options['insn_predicates'] = options["predicates"]
             if_predicates_stack.append(options)
             del options
             del predicate
@@ -825,7 +829,6 @@ def parse_instructions(instructions, defines):
             else:
                 assert else_match is not None
                 if not last_if_predicates:
-                    import pdb; pdb.set_trace()
                     raise LoopyError("'else' without 'if'/'elif' encountered")
                 additional_preds = frozenset()