diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index 80b39bff3ed..9b375949c90 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -1914,8 +1914,8 @@ static HRESULT WINAPI FoundDuration(IFilterGraphImpl *This, IMediaSeeking *seek,
     if (FAILED(hr))
         return hr;
 
-    /* FIXME: Minimum or maximum duration? */
-    if (!*pdur < duration)
+    /* FIXME: Minimum or maximum duration? Assuming minimum */
+    if (duration > 0 && *pdur < duration)
         *pdur = duration;
 
     return hr;
@@ -1932,10 +1932,11 @@ static HRESULT WINAPI MediaSeeking_GetDuration(IMediaSeeking *iface,
         return E_POINTER;
 
     EnterCriticalSection(&This->cs);
-    *pDuration = 0;
+    *pDuration = -1;
     hr = all_renderers_seek(This, FoundDuration, (DWORD_PTR)pDuration);
     LeaveCriticalSection(&This->cs);
 
+    TRACE("--->%08x\n", hr);
     return hr;
 }