diff --git a/dll/win32/shell32/folders/CFSFolder.cpp b/dll/win32/shell32/folders/CFSFolder.cpp index 4ce2a2babe..dd187a8ada 100644 --- a/dll/win32/shell32/folders/CFSFolder.cpp +++ b/dll/win32/shell32/folders/CFSFolder.cpp @@ -737,7 +737,9 @@ HRESULT WINAPI CFSFolder::BindToObject( /* Get the CLSID to bind to */ CLSID clsidFolder; - if (_ILIsFolder(pidl)) + WCHAR szPath[MAX_PATH]; + SHGetPathFromIDListW(pidl, szPath); + if (_ILIsFolder(pidl) || PathIsDirectoryW(szPath)) { clsidFolder = CLSID_ShellFSFolder; diff --git a/dll/win32/shell32/wine/brsfolder.c b/dll/win32/shell32/wine/brsfolder.c index 499e040ef3..3e98634db9 100644 --- a/dll/win32/shell32/wine/brsfolder.c +++ b/dll/win32/shell32/wine/brsfolder.c @@ -753,7 +753,7 @@ static HRESULT BrsFolder_NewFolder(browse_info *info) if(FAILED(hr)) return hr; - if (info->pidlRet) + if (info->pidlRet && !_ILIsDesktop(info->pidlRet)) { hr = IShellFolder_BindToObject(desktop, info->pidlRet, 0, &IID_IShellFolder, (void**)&cur); IShellFolder_Release(desktop);