diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 3fac9c0530928b8b0633bf6645fb13c891b48811..55511f3ac79560e75c8c1f8ed07407181dfe3f36 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -2514,8 +2514,10 @@ static HRESULT WINAPI DOMProgressEvent_get_lengthComputable(IDOMProgressEvent *i
 static HRESULT WINAPI DOMProgressEvent_get_loaded(IDOMProgressEvent *iface, ULONGLONG *p)
 {
     DOMProgressEvent *This = impl_from_IDOMProgressEvent(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, p);
+
+    return map_nsresult(nsIDOMProgressEvent_GetLoaded(This->nsevent, p));
 }
 
 static HRESULT WINAPI DOMProgressEvent_get_total(IDOMProgressEvent *iface, ULONGLONG *p)
diff --git a/dlls/mshtml/tests/xhr.js b/dlls/mshtml/tests/xhr.js
index 9af44850a39ca06b812efaeafaf33f46c1ce0fc9..c60107c556f063d3eef3585fc89928c2df8ac9d4 100644
--- a/dlls/mshtml/tests/xhr.js
+++ b/dlls/mshtml/tests/xhr.js
@@ -48,6 +48,7 @@ function test_xhr() {
             for(var i = 0; i < props.length; i++)
                 ok(props[i] in e, props[i] + " not available in loadstart");
             ok(e.lengthComputable === false, "lengthComputable in loadstart = " + e.lengthComputable);
+            ok(e.loaded === 0, "loaded in loadstart = " + e.loaded);
             loadstart = true;
         };
         xhr.onloadend = function(e) {
@@ -57,6 +58,8 @@ function test_xhr() {
             for(var i = 0; i < props.length; i++)
                 ok(props[i] in e, props[i] + " not available in loadend");
             ok(e.lengthComputable === true, "lengthComputable in loadend = " + e.lengthComputable);
+            todo_wine.
+            ok(e.loaded === xml.length, "loaded in loadend = " + e.loaded);
             next_test();
         };
     }
@@ -175,6 +178,7 @@ function test_timeout() {
         }
         if(v >= 10) {
             ok(e.lengthComputable === false, "lengthComputable = " + e.lengthComputable);
+            ok(e.loaded === 0, "loaded = " + e.loaded);
         }
         next_test();
     }