Hi Agha, Mike is absolutely right and I can tell you why, you are doing the wrong cast. You have a reference to a RECT and you are casting to a RECT. This is what you should do, if you want to keep the cast RECT& RectOne = (RECT**&**) *it; RectOne.left = -1; RECT& RectTwo = (RECT**&**) *it; int left = RectTwo.left; Regards, Fabian