Index: src/ResolvExpr/TypeEnvironment.cc
===================================================================
--- src/ResolvExpr/TypeEnvironment.cc	(revision 7a63486c789eef4cd4e6838a7b116bf5ae8d58fc)
+++ src/ResolvExpr/TypeEnvironment.cc	(revision 7889f146c83b0244292a2deadd0047bac295afed)
@@ -430,5 +430,5 @@
 					class1->set_type( common );
 				}
-				class1->data.isComplete = data.isComplete;
+				class1->data.isComplete |= data.isComplete;
 				env.erase( class2 );
 			} else return false;
@@ -438,10 +438,10 @@
 				class1->vars.insert( class2->vars.begin(), class2->vars.end() );
 				class1->allowWidening = widen1;
-				class1->data.isComplete = data.isComplete;
+				class1->data.isComplete |= data.isComplete;
 				env.erase( class2 );
 			} else {
 				class2->vars.insert( class1->vars.begin(), class1->vars.end() );
 				class2->allowWidening = widen2;
-				class2->data.isComplete = data.isComplete;
+				class2->data.isComplete |= data.isComplete;
 				env.erase( class1 );
 			} // if
@@ -450,10 +450,10 @@
 			class1->vars.insert( var2->get_name() );
 			class1->allowWidening = widen1;
-			class1->data.isComplete = data.isComplete;
+			class1->data.isComplete |= data.isComplete;
 		} else if ( class2 != env.end() ) {
 			// var1 unbound, add to class2
 			class2->vars.insert( var1->get_name() );
 			class2->allowWidening = widen2;
-			class2->data.isComplete = data.isComplete;
+			class2->data.isComplete |= data.isComplete;
 		} else {
 			// neither var bound, create new class
