diff --git a/analyze.py b/analyze.py
index dabf37c4ca94dac430cc34cc0551b0c794028b1d_YW5hbHl6ZS5weQ==..2b27784a7b2de0165bf5bfe9367f6227359d1dec_YW5hbHl6ZS5weQ== 100644
--- a/analyze.py
+++ b/analyze.py
@@ -175,7 +175,12 @@
         else:
             orred = [ _OR ]
             for t in etypes:
-                orred.append( [ _EQ, self.variables[var], self.values[t] ] )
+                try:
+                    orred.append( [ _EQ, self.variables[var], self.values[t] ] )
+                except KeyError:
+                    # key error may be raised by self.values[t] if self.values
+                    # reflects constraints from subqueries
+                    continue
             self.op.append( orred )
 
     def vars_have_types(self, varnames, types):