Emiliano,
The problem is that your are calling the form's refresh in the InteractiveChange of the control. At this point the control has not yet updated its ControlSource so when its refresh gets called (as a result of calling the form's refresh) it reads the old ControlSource value again and you see the result you see.
Here's one thing you can try to get this to work for you. Create a combobox class and give it a property named IamRefreshing. InN the interactivechange do this;
This.IamRefreshing = .T.
Thisform.Refresh()
In the refresh for the combobox class do this;
IF This.IamRefreshing
NODEFAULT
This.IamRefreshing = .F.
ENDIF
This way, when it is your combobox that is calling the form's refresh, it will NOT refresh itself on you.