AjaxProgress will hang when someone uploads a zero byte file. Why would someone do it? It does happen, a user filed a ticket because they tested the upload feature with a blank file. Not good to mumble in front of a new client because of this one. Simple fix. The process is "started" if it has some movement or if it is "done" from the beginning.