diff --git a/misc/shell.c b/misc/shell.c
index 4947eeb..d306032 100644
--- a/misc/shell.c
+++ b/misc/shell.c
@@ -875,7 +875,38 @@
     return ExtractIcon32A( hInstance, lpszExeFileName, nIconIndex );
 }
 
+/*************************************************************************
+ *             ExtractIconEx16   (SHELL.40)
+ */
+HICON16 WINAPI ExtractIconEx16(
+	LPCSTR lpszFile, INT16 nIconIndex, HICON16 *phiconLarge,
+	HICON16 *phiconSmall, UINT16 nIcons
+) {
+    HICON32	*ilarge,*ismall;
+    UINT16	ret;
+    int		i;
 
+    if (phiconLarge)
+    	ilarge = (HICON32*)HeapAlloc(GetProcessHeap(),0,nIcons*sizeof(HICON32));
+    else
+    	ilarge = NULL;
+    if (phiconSmall)
+    	ismall = (HICON32*)HeapAlloc(GetProcessHeap(),0,nIcons*sizeof(HICON32));
+    else
+    	ismall = NULL;
+    ret = ExtractIconEx32A(lpszFile,nIconIndex,ilarge,ismall,nIcons);
+    if (ilarge) {
+    	for (i=0;i<nIcons;i++)
+	    phiconLarge[i]=ilarge[i];
+	HeapFree(GetProcessHeap(),0,ilarge);
+    }
+    if (ismall) {
+    	for (i=0;i<nIcons;i++)
+	    phiconSmall[i]=ismall[i];
+	HeapFree(GetProcessHeap(),0,ismall);
+    }
+    return ret;
+}
 
 /*************************************************************************
  *				ExtractAssociatedIcon	[SHELL.36]
