diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp
index 2d4f46b1d6099c5645c08263d9197e16110346ab..4ccf0ceb0ff3e8d4e4d498c28634ff746653f49e 100644
--- a/src/plugins/wmf/player/mfplayersession.cpp
+++ b/src/plugins/wmf/player/mfplayersession.cpp
@@ -256,8 +256,13 @@ void MFPlayerSession::handleMediaSourceReady()
     qDebug() << "handleMediaSourceReady";
 #endif
     HRESULT hr = S_OK;
-    IMFPresentationDescriptor* sourcePD;
     IMFMediaSource* mediaSource = m_sourceResolver->mediaSource();
+
+    DWORD dwCharacteristics = 0;
+    mediaSource->GetCharacteristics(&dwCharacteristics);
+    emit seekableUpdate(MFMEDIASOURCE_CAN_SEEK & dwCharacteristics);
+
+    IMFPresentationDescriptor* sourcePD;
     hr = mediaSource->CreatePresentationDescriptor(&sourcePD);
     if (SUCCEEDED(hr)) {
         m_duration = 0;
@@ -1638,10 +1643,6 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
                 }
             }
 
-            DWORD dwCharacteristics = 0;
-            m_sourceResolver->mediaSource()->GetCharacteristics(&dwCharacteristics);
-            emit seekableUpdate(MFMEDIASOURCE_CAN_SEEK & dwCharacteristics);
-
             // Topology is resolved and successfuly set, this happens only after loading a new media.
             // Make sure we always start the media from the beginning
             m_varStart.vt = VT_I8;