diff --git a/include/interfaces/irdb/STARSOp.h b/include/interfaces/irdb/STARSOp.h
index 573d8fab60a35d94350b09ed773c748f4237e55d..25a54c16e10aaf53a080055c9f0794ba5e99f957 100644
--- a/include/interfaces/irdb/STARSOp.h
+++ b/include/interfaces/irdb/STARSOp.h
@@ -150,6 +150,15 @@ class STARS_IRDB_op_t : public STARS_op_t
 		}	
 		virtual void SetAddr(STARS_ea_t NewAddr) { assert(OpType==op_Mem); operand.mem.disp=NewAddr; }
 		virtual void SetSIB(char value);
+		virtual void ClearSIB() 
+		{ 
+			assert(OpType==op_Mem); 
+			operand.mem.scale=0; 
+			operand.mem.index=STARS_x86_R_none; 
+			operand.mem.hasSIB=false;
+
+			/* note: we leave the base register and displacement alone */
+		}
 
 		
 		virtual void SetNotVisible(void) { assert(OpType!=op_Void); visible=0; } // Set operand to type that is implicit, not explicit in disasm