title: jQuery Deferred .then() isn't called after .fail()
body: <p>I'm using jQuery.Deferred and registering the <code>done</code>, <code>fail</code> and <code>then</code> handlers:</p>
  
  <pre><code>$.when( some_ajax(url) )
      .done(function(result){})
      .fail(function(){})
      .then(function(){}); //just like that, with a single parameter
  </code></pre>
  
  <p>I've found that when my ajax call succeeds, <code>done</code> and <code>then</code> callbacks are called, in this order. However when the ajax fails, the <code>fail</code> callback is called but I don't get to the <code>then</code> callback.</p>
  
  <p>I've read the jQuery.Deferred documentation but couldn't find a hint regarding the reason for this behavior.</p>
  
  <p>When using <code>always</code> instead of <code>then</code>, it is called in both cases - success and failure (first <code>done</code>/<code>fail</code> is called, then <code>always</code> is called). The documentation doesn't seem to indicate an expected difference between <code>always</code> and <code>then</code> in my described scenario, why do they behave differently?</p>