diff --git a/lib/dom2.js b/lib/dom2.js
index <HASH>..<HASH> 100644
--- a/lib/dom2.js
+++ b/lib/dom2.js
@@ -60,13 +60,20 @@ AbstractXHRObject.prototype._start = function(method, url, payload, opts) {
                     var status = x.status;
                     var text = x.responseText;
                 } catch (x) {};
+                // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450
+                if (status === 1223) status = 204;
+
                 // IE does return readystate == 3 for 404 answers.
                 if (text && text.length > 0) {
                     that.emit('chunk', status, text);
                 }
                 break;
             case 4:
-                that.emit('finish', x.status, x.responseText);
+                var status = x.status;
+                // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450
+                if (status === 1223) status = 204;
+
+                that.emit('finish', status, x.responseText);
                 that._cleanup(false);
                 break;
             }
Work around another IE bug - <I> gets mangled to <I>