Hi Robert,
By default a parameter is passed to a procedure by reference, this means that if the IntcurrentSelectedEmployeeID is modified in the Windowxxx, then it will be reflected in the calling procedures code. So if you modify the value of the variable in Windowxxx and then the line beneath place a trace(IntCurrentSelectedEmployeeID), it will be different (like you're seeing).
To simply pass by value, use the keyword LOCAL before the variable name in the window definition global area;
PROCEDURE Windowxxx( LOCAL nIntCurrentSelectedEmployeeID )
Hope this helps.
Cheers!
Ken