diff --git a/dlls/shell32/classes.c b/dlls/shell32/classes.c
index 2da88058c26d525d67bb7e72d677c161b7a58bd7..480fab03df02f29829ab4b5c22f677bd2240f4de 100644
--- a/dlls/shell32/classes.c
+++ b/dlls/shell32/classes.c
@@ -104,7 +104,10 @@ BOOL HCR_GetDefaultIcon (LPCSTR szClass, LPSTR szDest, DWORD len, LPDWORD dwNr)
 	      ExpandEnvironmentStringsA(szDest, sTemp, MAX_PATH);
 	      strcpy(szDest, sTemp);
 	    }
-	    if (ParseFieldA (szDest, 2, sNum, 5)) *dwNr=atoi(sNum);
+	    if (ParseFieldA (szDest, 2, sNum, 5))
+               *dwNr=atoi(sNum);
+            else
+               *dwNr=0; /* sometimes the icon number is missing */
 	    ParseFieldA (szDest, 1, szDest, len);
 	    ret = TRUE;
 	  }