On Mozilla MDM, about XmlHTTPRequest, you can read:
Note: You may not use a timeout for synchronous requests with an owning window.
So a better work around could probably be to change the line (1009 in v4.0)
toCode:if(callback && callback.timeout){
Code:if(callback && callback.timeout && options.async){

