When .then locks in a Deferred by rebinding to a thenable resolved by its base, progress context is inappropriately propagated as progress data, and progress data is in appropriately wrapped in an array. It's probably easier to explain in code than in natural language: https://jsfiddle.net/zwavzvpx/ .
This happens because .notify is used where .notifyWith belongs, at deferred.js#L131.