After looking over your code I have a few suggestions.
- Don't use OnEvent_Signin. Instead use OnEvent_SigninReady. This event is fired once the contactlist is fully received from the servers.
Also I was able to get the shift key to work without a problem.