diff --git a/SMPInstr.cpp b/SMPInstr.cpp
index 76474b8ec37fcf5b05753eefa69ff4146cc0306a..e7fdc011ae39c13037fe59c82f1f39611c543a0c 100644
--- a/SMPInstr.cpp
+++ b/SMPInstr.cpp
@@ -6005,6 +6005,7 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) {
 			}
 			break;
 
+#if 0
 		case SMP_SIGN_EXTEND:
 		case SMP_ZERO_EXTEND:
 			// Should we infer that all operands are NUMERIC?  !!!???!!!!
@@ -6013,6 +6014,7 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) {
 				updated = true;
 			}
 			break;
+#endif
 
 		case SMP_ADDRESS_OF: // take effective address
 			if (UNINIT == CurrRT->GetOperatorType()) {
@@ -6023,6 +6025,8 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) {
 			}
 			break;
 
+		case SMP_SIGN_EXTEND:
+		case SMP_ZERO_EXTEND:
 		case SMP_U_LEFT_SHIFT: // unsigned left shift
 		case SMP_S_LEFT_SHIFT: // signed left shift
 		case SMP_U_RIGHT_SHIFT: // unsigned right shift
@@ -6105,6 +6109,7 @@ bool SMPInstr::InferOperatorType(SMPRegTransfer *CurrRT) {
 #if SMP_AGGRESSIVE_TYPE_INFERENCE
 				if (UNINIT == CurrRT->GetRightTree()->GetOperatorType()) {
 					CurrRT->GetRightTree()->SetOperatorType(NUMERIC, this);
+					updated = true;
 				}
 #endif
 				updated |= this->InferOperatorType(CurrRT->GetRightTree());