diff --git a/base/shell/rshell/CStartMenu.cpp b/base/shell/rshell/CStartMenu.cpp index 140ec1ec5b8..fa10931a901 100644 --- a/base/shell/rshell/CStartMenu.cpp +++ b/base/shell/rshell/CStartMenu.cpp @@ -267,10 +267,8 @@ public: case SMC_GETOBJECT: return OnGetObject(psmd, *reinterpret_cast(wParam), reinterpret_cast(lParam)); case SMC_EXEC: - DbgPrint("SMC_EXEC\n"); return OnExec(psmd); case SMC_SFEXEC: - DbgPrint("SMC_SFEXEC\n"); m_pTrayPriv->Execute(psmd->psf, psmd->pidlItem); break; } diff --git a/dll/win32/shell32/shellord.cpp b/dll/win32/shell32/shellord.cpp index 629e1f832cd..d33019a6a1d 100644 --- a/dll/win32/shell32/shellord.cpp +++ b/dll/win32/shell32/shellord.cpp @@ -2265,7 +2265,10 @@ EXTERN_C HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv) } Shell_GetImageLists(&hLarge, &hSmall); - hNew = ImageList_Duplicate(iImageList == SHIL_LARGE ? hLarge : hSmall); + + // Duplicating the imagelist causes the start menu items not to draw on the first show. + // Was the Duplicate necessary for some reason? I believe Windows returns the raw pointer here. + hNew = /*ImageList_Duplicate*/(iImageList == SHIL_LARGE ? hLarge : hSmall); /* Get the interface for the new image list */ if (hNew)