Index: base/shell/explorer/startctxmnu.cpp =================================================================== --- base/shell/explorer/startctxmnu.cpp (revision 71866) +++ base/shell/explorer/startctxmnu.cpp (working copy) @@ -69,7 +69,7 @@ WCHAR szBuf[MAX_PATH]; HRESULT hRet; - /* Add the "Open All Users" menu item */ + /* Add the "Properties" menu item */ if (LoadStringW(hExplorerInstance, IDS_PROPERTIES, szBuf, @@ -156,9 +156,11 @@ if (pidlStart != NULL) { - m_FolderPidl = ILClone(ILFindLastID(pidlStart)); - ILRemoveLastID(pidlStart); + //m_FolderPidl = ILClone(ILFindLastID(pidlStart)); + //ILRemoveLastID(pidlStart); + m_FolderPidl = pidlStart; + if (m_FolderPidl != NULL) { hRet = SHGetDesktopFolder(&psfDesktop); Index: dll/win32/shell32/CDefaultContextMenu.cpp =================================================================== --- dll/win32/shell32/CDefaultContextMenu.cpp (revision 71866) +++ dll/win32/shell32/CDefaultContextMenu.cpp (working copy) @@ -845,11 +845,19 @@ EnumerateDynamicContextHandlerForKey(hKey); RegCloseKey(hKey); } + } + /* add static actions */ + SFGAOF rfg; + if (_ILIsSpecialFolder(m_apidl[0])) + { + rfg = SFGAO_BROWSABLE | SFGAO_CANLINK | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER; } + else + { + rfg = SFGAO_BROWSABLE | SFGAO_CANCOPY | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANDELETE | SFGAO_CANRENAME | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER; + } - /* add static actions */ - SFGAOF rfg = SFGAO_BROWSABLE | SFGAO_CANCOPY | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANDELETE | SFGAO_CANRENAME | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER; hr = m_psf->GetAttributesOf(m_cidl, m_apidl, &rfg); if (FAILED(hr)) {