If you would like to try an experiment, I posted code here in a similar thread. See if it behaves as you expect, and if it does, perhaps it will provide a point of reference for figuring out what is different with your code.
EDIT: also check out issue 19324.