| Index: src/types.cc | 
| diff --git a/src/types.cc b/src/types.cc | 
| index 3840e6fd223f72c0210b49a386e3ca4462ef4a0b..cf41bb5d0ed597edced05a6227e6390ec69154f5 100644 | 
| --- a/src/types.cc | 
| +++ b/src/types.cc | 
| @@ -141,9 +141,11 @@ int TypeImpl<Config>::LubBitset() { | 
| } | 
| return bitset; | 
| } else if (this->IsClass()) { | 
| -    return LubBitset(*this->AsClass()); | 
| +    int bitset = Config::lub_bitset(this); | 
| +    return bitset ? bitset : LubBitset(*this->AsClass()); | 
| } else { | 
| -    return LubBitset(*this->AsConstant()); | 
| +    int bitset = Config::lub_bitset(this); | 
| +    return bitset ? bitset : LubBitset(*this->AsConstant()); | 
| } | 
| } | 
|  | 
| @@ -548,9 +550,9 @@ typename TypeImpl<Config>::TypeHandle TypeImpl<Config>::Convert( | 
| if (type->IsBitset()) { | 
| return Config::from_bitset(type->AsBitset(), region); | 
| } else if (type->IsClass()) { | 
| -    return Config::from_class(type->AsClass(), region); | 
| +    return Config::from_class(type->AsClass(), type->LubBitset(), region); | 
| } else if (type->IsConstant()) { | 
| -    return Config::from_constant(type->AsConstant(), region); | 
| +    return Config::from_constant(type->AsConstant(), type->LubBitset(), region); | 
| } else { | 
| ASSERT(type->IsUnion()); | 
| typename OtherType::UnionedHandle unioned = type->AsUnion(); | 
|  |