diff --git a/dlls/msacm/internal.c b/dlls/msacm/internal.c
index 99cbbf7..d23930b 100644
--- a/dlls/msacm/internal.c
+++ b/dlls/msacm/internal.c
@@ -70,11 +70,10 @@
  */
 static BOOL MSACM_FillCache(PWINE_ACMDRIVERID padid) 
 {
-    HACMDRIVER		had = 0;
-    int			ntag;
-    ACMDRIVERDETAILSW	add;
-    ACMFORMATDETAILSW	aftd;
-    WAVEFORMATEX	wfx;
+    HACMDRIVER		        had = 0;
+    int			        ntag;
+    ACMDRIVERDETAILSW	        add;
+    ACMFORMATTAGDETAILSW        aftd;
 
     if (acmDriverOpen(&had, (HACMDRIVERID)padid, 0) != 0)
 	return FALSE;
@@ -95,20 +94,17 @@
     padid->fdwSupport  = add.fdwSupport;
 
     aftd.cbStruct = sizeof(aftd);
-    /* don't care about retrieving full struct... so a bare WAVEFORMATEX should do */
-    aftd.pwfx = &wfx;
-    aftd.cbwfx = sizeof(wfx);
-
+ 
     for (ntag = 0; ntag < add.cFormatTags; ntag++) {
-	aftd.dwFormatIndex = ntag;
-	if (MSACM_Message(had, ACMDM_FORMAT_DETAILS, (LPARAM)&aftd, ACM_FORMATDETAILSF_INDEX)) {
+	aftd.dwFormatTagIndex = ntag;
+	if (MSACM_Message(had, ACMDM_FORMATTAG_DETAILS, (LPARAM)&aftd, ACM_FORMATTAGDETAILSF_INDEX)) {
 	    TRACE("IIOs (%s)\n", padid->pszDriverAlias);
 	    goto errCleanUp;
 	}
 	padid->aFormatTag[ntag].dwFormatTag = aftd.dwFormatTag;
-	padid->aFormatTag[ntag].cbwfx = aftd.cbwfx;
+	padid->aFormatTag[ntag].cbwfx = aftd.cbFormatSize;
     }
-	    
+
     acmDriverClose(had, 0);
 
     return TRUE;
