diff --git a/cppcx/InstanceCX.cpp b/cppcx/InstanceCX.cpp
index a959ce0f7ed7655068a545f6b0dd02fc2c9b6c17..6dcb22848d5bfc356b44e9c25cc5432a8813dcfc 100644
--- a/cppcx/InstanceCX.cpp
+++ b/cppcx/InstanceCX.cpp
@@ -33,7 +33,7 @@ namespace libVLCX
     Instance::Instance(Windows::Foundation::Collections::IVector<Platform::String^>^ argv, SwapChainPanel^ panel)
         : m_chainPanel(panel)
     {
-        int extraArgs = 4;
+        int extraArgs = 5;
         auto c_argv = new char*[argv->Size + extraArgs];
         unsigned int i = 0;
         for (auto arg : argv)
@@ -58,6 +58,27 @@ namespace libVLCX
         m_dxManager->CreateSwapPanel(m_chainPanel);
         UpdateSize(m_chainPanel->ActualWidth, m_chainPanel->ActualHeight);
 
+        ComPtr<MMDeviceLocator> audioReg = Make<MMDeviceLocator>();
+
+        audioReg->m_AudioClient = NULL;
+        audioReg->m_audioClientReady = CreateEventEx(NULL, TEXT("AudioClientReady"), 0, EVENT_ALL_ACCESS);
+        audioReg->RegisterForWASAPI();
+
+        void *addr = NULL;
+        DWORD res;
+        while ((res = WaitForSingleObjectEx(audioReg->m_audioClientReady, 1000, TRUE)) == WAIT_TIMEOUT) {
+            OutputDebugStringW(L"Waiting for audio\n");
+        }
+        CloseHandle(audioReg->m_audioClientReady);
+        if (res != WAIT_OBJECT_0) {
+            OutputDebugString(TEXT("Failure while waiting for audio client"));
+            return;
+        }
+
+        char ptr_astring[40];
+        sprintf_s(ptr_astring, "--winstore-audioclient=0x%p", audioReg->m_AudioClient);
+        argv[nbArgs++] = _strdup(ptr_astring);
+
         char ptr_d2dstring[40];
         sprintf_s(ptr_d2dstring, "--winrt-d2dcontext=0x%p", m_dxManager->cp_d2dContext);
         argv[nbArgs++] = _strdup(ptr_d2dstring);