- README update
- add offsets to ASPI struct defines
- spelling

diff --git a/README b/README
index 542be0e..0fb333c 100644
--- a/README
+++ b/README
@@ -69,16 +69,12 @@
 make depend
 make
 
-This will build the library "libwine.a" and the program "wine".  
+This will build the program "wine" and numerous support libraries/binaries.  
 The program "wine" will load and run Windows executables.
-The library "libwine.a" can be used to compile and link Windows source
-code under Unix.
+The library "libwine" ("Winelib") can be used to compile and link
+Windows source code under Unix.
 
-If you do not intend to compile Windows source code, use
-"./configure --disable-lib" to skip building the library and reduce disk
-space requirements. If you have an ELF compiler (which you probably do),
-you can use "./configure --enable-dll" to build a shared library instead.
-To see other configuration options, do ./configure --help.
+To see compile configuration options, do ./configure --help.
 
 To upgrade to a new release by using a patch file, first cd to the
 top-level directory of the release (the one containing this README
@@ -145,7 +141,7 @@
 WWW:	A great deal of information about Wine is available from WineHQ at
 	http://www.winehq.com/. Untested patches against the current release
 	are available on the wine-patches mailing list; see 
-	http://www.winehq.com/dev.html#ml for more information.
+	http://www.winehq.com/dev.shtml#ml for more information.
 
 HOWTO:	The Wine HOWTO is available at
 	http://www.westfalen.de/witch/wine-HOWTO.txt .
@@ -162,7 +158,7 @@
 IRC:	Online help is available at channel #WineHQ on IRCnet.
 
 CVS:	The current Wine development tree is available through CVS.
-	Go to http://www.winehq.com/dev.html for more information.
+	Go to http://www.winehq.com/dev.shtml for more information.
 
 If you add something, or fix a bug, please send a patch ('diff -u'
 format preferred) to julliard@winehq.com for inclusion in the next
diff --git a/dlls/oleaut32/ole2disp.c b/dlls/oleaut32/ole2disp.c
index 78f3d4e..20a56ec 100644
--- a/dlls/oleaut32/ole2disp.c
+++ b/dlls/oleaut32/ole2disp.c
@@ -136,7 +136,7 @@
  *             SysAllocStringLen     [OLEAUT32.4]
  *
  * In "Inside OLE, second edition" by Kraig Brockshmidt. In the Automation
- * section, he describes the DWORD value placed before the BSTR data type.
+ * section, he describes the DWORD value placed *before* the BSTR data type.
  * he describes it as a "DWORD count of characters". By experimenting with
  * a windows application, this count seems to be a DWORD count of bytes in
  * the string. Meaning that the count is double the number of wide 
@@ -149,13 +149,13 @@
     WCHAR* stringBuffer;
 
     /*
-     * Find the lenth of the buffer passed-in in bytes.
+     * Find the length of the buffer passed-in in bytes.
      */
     bufferSize = len * sizeof (WCHAR);
 
     /*
      * Allocate a new buffer to hold the string.
-     * dont't forget to keep an empty spot at the begining of the
+     * dont't forget to keep an empty spot at the beginning of the
      * buffer for the character count and an extra character at the
      * end for the NULL.
      */
diff --git a/dlls/winmm/wineoss/mixer.c b/dlls/winmm/wineoss/mixer.c
index 931d88f..074ab0c 100644
--- a/dlls/winmm/wineoss/mixer.c
+++ b/dlls/winmm/wineoss/mixer.c
@@ -63,7 +63,7 @@
 	WARN("mixer device not available !\n");
     } else {
 	if (ioctl(mixer, MIXER_READ(chn), val) >= 0) {
-	    TRACE("Reading %x on %d\n", *val, chn);
+	    TRACE("Reading volume %x on %d\n", *val, chn);
 	    ret = TRUE;
 	}
 	close(mixer);
@@ -79,7 +79,7 @@
     int		mixer;
     BOOL	ret = FALSE;
 
-    TRACE("Writing %x on %d\n", val, chn);
+    TRACE("Writing volume %x on %d\n", val, chn);
 
     if ((mixer = open(MIXER_DEV, O_RDWR)) < 0) {
 	/* FIXME: ENXIO => no mixer installed */
@@ -199,7 +199,7 @@
 	TRACE("SOURCE (%08lx)\n", lpMl->dwSource);
 	i = lpMl->dwSource;
 	for (j = 1; j < SOUND_MIXER_NRDEVICES; j++) {
-	    if (WINE_CHN_SUPPORTS(MIX_DevMask, j) && (i-- == 0)) 
+	    if (WINE_CHN_SUPPORTS(MIX_DevMask, j) && (i-- == 0))
 		break;
 	}
 	if (j >= SOUND_MIXER_NRDEVICES)
diff --git a/include/queue.h b/include/queue.h
index 4a1be22..15d6f91 100644
--- a/include/queue.h
+++ b/include/queue.h
@@ -40,7 +40,7 @@
     HQUEUE16       hSrcQueue;       /* sending Queue, (NULL if it didn't wait) */
     HQUEUE16       hDstQueue;       /* destination Queue */
 
-    HWND         hWnd;            /* destinantion window */
+    HWND         hWnd;            /* destination window */
     UINT         msg;             /* message sent */
     WPARAM       wParam;          /* wParam of the sent message */
     LPARAM         lParam;          /* lParam of the sent message */
@@ -65,7 +65,7 @@
 #define SMSG_EARLY_REPLY            0x0080
 /* set when sender is Win32 thread */
 #define SMSG_WIN32                  0x1000
-/* set when sender is a unnicode thread */
+/* set when sender is a unicode thread */
 #define SMSG_UNICODE                0x2000
 
 /* Per-queue data for the message queue
diff --git a/include/wnaspi32.h b/include/wnaspi32.h
index ab729e5..005823f 100644
--- a/include/wnaspi32.h
+++ b/include/wnaspi32.h
@@ -90,105 +90,105 @@
 
 /* SRB - HOST ADAPTER INQUIRY - SC_HA_INQUIRY */
 typedef struct tagSRB32_HaInquiry {
- BYTE  SRB_Cmd;                 /* ASPI command code = SC_HA_INQUIRY */
- BYTE  SRB_Status;              /* ASPI command status byte */
- BYTE  SRB_HaId;                /* ASPI host adapter number */
- BYTE  SRB_Flags;               /* ASPI request flags */
- DWORD  SRB_Hdr_Rsvd;           /* Reserved, MUST = 0 */
- BYTE  HA_Count;                /* Number of host adapters present */
- BYTE  HA_SCSI_ID;              /* SCSI ID of host adapter */
- BYTE  HA_ManagerId[16];        /* String describing the manager */
- BYTE  HA_Identifier[16];       /* String describing the host adapter */
- BYTE  HA_Unique[16];           /* Host Adapter Unique parameters */
+ BYTE  SRB_Cmd;                 /* 00 ASPI command code = SC_HA_INQUIRY */
+ BYTE  SRB_Status;              /* 01 ASPI command status byte */
+ BYTE  SRB_HaId;                /* 02 ASPI host adapter number */
+ BYTE  SRB_Flags;               /* 03 ASPI request flags */
+ DWORD  SRB_Hdr_Rsvd;           /* 04 Reserved, MUST = 0 */
+ BYTE  HA_Count;                /* 08 Number of host adapters present */
+ BYTE  HA_SCSI_ID;              /* 09 SCSI ID of host adapter */
+ BYTE  HA_ManagerId[16];        /* 0A String describing the manager */
+ BYTE  HA_Identifier[16];       /* 1A String describing the host adapter */
+ BYTE  HA_Unique[16];           /* 2A Host Adapter Unique parameters */
  WORD  HA_Rsvd1;
 } SRB_HaInquiry, *PSRB_HaInquiry;
 
 /* SRB - GET DEVICE TYPE - SC_GET_DEV_TYPE */
 typedef struct tagSRB32_GDEVBlock {
- BYTE  SRB_Cmd;                 /* ASPI command code = SC_GET_DEV_TYPE */
- BYTE  SRB_Status;              /* ASPI command status byte */
- BYTE  SRB_HaId;                /* ASPI host adapter number */
- BYTE  SRB_Flags;               /* Reserved */
- DWORD  SRB_Hdr_Rsvd;           /* Reserved */
- BYTE  SRB_Target;              /* Target's SCSI ID */
- BYTE  SRB_Lun;                 /* Target's LUN number */
- BYTE  SRB_DeviceType;          /* Target's peripheral device type */
+ BYTE  SRB_Cmd;                 /* 00 ASPI command code = SC_GET_DEV_TYPE */
+ BYTE  SRB_Status;              /* 01 ASPI command status byte */
+ BYTE  SRB_HaId;                /* 02 ASPI host adapter number */
+ BYTE  SRB_Flags;               /* 03 Reserved */
+ DWORD  SRB_Hdr_Rsvd;           /* 04 Reserved */
+ BYTE  SRB_Target;              /* 08 Target's SCSI ID */
+ BYTE  SRB_Lun;                 /* 09 Target's LUN number */
+ BYTE  SRB_DeviceType;          /* 0A Target's peripheral device type */
  BYTE  SRB_Rsvd1;
 } SRB_GDEVBlock, *PSRB_GDEVBlock;
 
 /* SRB - EXECUTE SCSI COMMAND - SC_EXEC_SCSI_CMD */
 typedef struct tagSRB32_ExecSCSICmd {
-  BYTE        SRB_Cmd;            /* ASPI command code = SC_EXEC_SCSI_CMD */
-  BYTE        SRB_Status;         /* ASPI command status byte */
-  BYTE        SRB_HaId;           /* ASPI host adapter number */
-  BYTE        SRB_Flags;          /* ASPI request flags */
-  DWORD       SRB_Hdr_Rsvd;       /* Reserved */
-  BYTE        SRB_Target;         /* Target's SCSI ID */
-  BYTE        SRB_Lun;            /* Target's LUN number */
-  WORD        SRB_Rsvd1;          /* Reserved for Alignment */
-  DWORD       SRB_BufLen;         /* Data Allocation Length */
-  BYTE        *SRB_BufPointer;    /* Data Buffer Point */
-  BYTE        SRB_SenseLen;       /* Sense Allocation Length */
-  BYTE        SRB_CDBLen;         /* CDB Length */
-  BYTE        SRB_HaStat;         /* Host Adapter Status */
-  BYTE        SRB_TargStat;       /* Target Status */
-  void        (*SRB_PostProc)();  /* Post routine */
-  void        *SRB_Rsvd2;         /* Reserved */
-  BYTE        SRB_Rsvd3[16];      /* Reserved for expansion */
-  BYTE        CDBByte[16];        /* SCSI CDB */
-  BYTE        SenseArea[SENSE_LEN+2];  /* Request sense buffer - var length */
+  BYTE        SRB_Cmd;            /* 00 ASPI command code = SC_EXEC_SCSI_CMD */
+  BYTE        SRB_Status;         /* 01 ASPI command status byte */
+  BYTE        SRB_HaId;           /* 02 ASPI host adapter number */
+  BYTE        SRB_Flags;          /* 03 ASPI request flags */
+  DWORD       SRB_Hdr_Rsvd;       /* 04 Reserved */
+  BYTE        SRB_Target;         /* 08 Target's SCSI ID */
+  BYTE        SRB_Lun;            /* 09 Target's LUN number */
+  WORD        SRB_Rsvd1;          /* 0A Reserved for Alignment */
+  DWORD       SRB_BufLen;         /* 0C Data Allocation Length */
+  BYTE        *SRB_BufPointer;    /* 10 Data Buffer Point */
+  BYTE        SRB_SenseLen;       /* 14 Sense Allocation Length */
+  BYTE        SRB_CDBLen;         /* 15 CDB Length */
+  BYTE        SRB_HaStat;         /* 16 Host Adapter Status */
+  BYTE        SRB_TargStat;       /* 17 Target Status */
+  void        (*SRB_PostProc)();  /* 18 Post routine */
+  void        *SRB_Rsvd2;         /* 1C Reserved */
+  BYTE        SRB_Rsvd3[16];      /* 20 Reserved for expansion */
+  BYTE        CDBByte[16];        /* 30 SCSI CDB */
+  BYTE        SenseArea[SENSE_LEN+2];  /* 40 Request sense buffer - var length */
 } SRB_ExecSCSICmd, *PSRB_ExecSCSICmd;
 
 /* SRB - ABORT AN ARB - SC_ABORT_SRB */
 typedef struct tagSRB32_Abort {
-  BYTE        SRB_Cmd;            /* ASPI command code = SC_ABORT_SRB */
-  BYTE        SRB_Status;         /* ASPI command status byte */
-  BYTE        SRB_HaId;           /* ASPI host adapter number */
-  BYTE        SRB_Flags;          /* Reserved */
-  DWORD       SRB_Hdr_Rsvd;       /* Reserved, MUST = 0 */
-  VOID       *SRB_ToAbort;        /* Pointer to SRB to abort */
+  BYTE        SRB_Cmd;            /* 00 ASPI command code = SC_ABORT_SRB */
+  BYTE        SRB_Status;         /* 01 ASPI command status byte */
+  BYTE        SRB_HaId;           /* 02 ASPI host adapter number */
+  BYTE        SRB_Flags;          /* 03 Reserved */
+  DWORD       SRB_Hdr_Rsvd;       /* 04 Reserved, MUST = 0 */
+  VOID       *SRB_ToAbort;        /* 08 Pointer to SRB to abort */
 } SRB_Abort, *PSRB_Abort;
 
 /* SRB - BUS DEVICE RESET - SC_RESET_DEV */
 typedef struct tagSRB32_BusDeviceReset {
- BYTE         SRB_Cmd;                  /* ASPI command code = SC_RESET_DEV */
- BYTE         SRB_Status;               /* ASPI command status byte */
- BYTE         SRB_HaId;                 /* ASPI host adapter number */
- BYTE         SRB_Flags;                /* Reserved */
- DWORD        SRB_Hdr_Rsvd;             /* Reserved */
- BYTE         SRB_Target;               /* Target's SCSI ID */
- BYTE         SRB_Lun;                  /* Target's LUN number */
- BYTE         SRB_Rsvd1[12];            /* Reserved for Alignment */
- BYTE         SRB_HaStat;               /* Host Adapter Status */
- BYTE         SRB_TargStat;             /* Target Status */
- void         (*SRB_PostProc)();        /* Post routine */
- void         *SRB_Rsvd2;               /* Reserved */
- BYTE         SRB_Rsvd3[32];            /* Reserved */
+ BYTE         SRB_Cmd;                  /* 00 ASPI cmd code = SC_RESET_DEV */
+ BYTE         SRB_Status;               /* 01 ASPI command status byte */
+ BYTE         SRB_HaId;                 /* 02 ASPI host adapter number */
+ BYTE         SRB_Flags;                /* 03 Reserved */
+ DWORD        SRB_Hdr_Rsvd;             /* 04 Reserved */
+ BYTE         SRB_Target;               /* 08 Target's SCSI ID */
+ BYTE         SRB_Lun;                  /* 09 Target's LUN number */
+ BYTE         SRB_Rsvd1[12];            /* 0A Reserved for Alignment */
+ BYTE         SRB_HaStat;               /* 16 Host Adapter Status */
+ BYTE         SRB_TargStat;             /* 17 Target Status */
+ void         (*SRB_PostProc)();        /* 18 Post routine */
+ void         *SRB_Rsvd2;               /* 1c Reserved */
+ BYTE         SRB_Rsvd3[32];            /* 20 Reserved */
 } SRB_BusDeviceReset, *PSRB_BusDeviceReset;
 
 /* SRB - GET DISK INFORMATION - SC_GET_DISK_INFO */
 typedef struct tagSRB32_GetDiskInfo {
- BYTE         SRB_Cmd;                  /* ASPI command code = SC_RESET_DEV */
- BYTE         SRB_Status;               /* ASPI command status byte */
- BYTE         SRB_HaId;                 /* ASPI host adapter number */
- BYTE         SRB_Flags;                /* Reserved */
- DWORD        SRB_Hdr_Rsvd;             /* Reserved */
- BYTE         SRB_Target;               /* Target's SCSI ID */
- BYTE         SRB_Lun;                  /* Target's LUN number */
- BYTE         SRB_DriveFlags;           /* Driver flags */
- BYTE         SRB_Int13HDriveInfo;      /* Host Adapter Status */
- BYTE         SRB_Heads;                /* Preferred number of heads trans */
- BYTE         SRB_Sectors;              /* Preferred number of sectors trans */
- BYTE         SRB_Rsvd1[10];            /* Reserved */
+ BYTE         SRB_Cmd;                  /* 00 ASPI cmd code = SC_RESET_DEV */
+ BYTE         SRB_Status;               /* 01 ASPI command status byte */
+ BYTE         SRB_HaId;                 /* 02 ASPI host adapter number */
+ BYTE         SRB_Flags;                /* 03 Reserved */
+ DWORD        SRB_Hdr_Rsvd;             /* 04 Reserved */
+ BYTE         SRB_Target;               /* 08 Target's SCSI ID */
+ BYTE         SRB_Lun;                  /* 09 Target's LUN number */
+ BYTE         SRB_DriveFlags;           /* 0A Driver flags */
+ BYTE         SRB_Int13HDriveInfo;      /* 0B Host Adapter Status */
+ BYTE         SRB_Heads;                /* 0C Preferred number of heads trans */
+ BYTE         SRB_Sectors;              /* 0D Preferred number of sectors trans */
+ BYTE         SRB_Rsvd1[10];            /* 0E Reserved */
 } SRB_GetDiskInfo, *PSRB_GetDiskInfo;
 
 /* SRB header */
 typedef struct tagSRB32_Header {
- BYTE         SRB_Cmd;                  /* ASPI command code = SC_RESET_DEV */
- BYTE         SRB_Status;               /* ASPI command status byte */
- BYTE         SRB_HaId;                 /* ASPI host adapter number */
- BYTE         SRB_Flags;                /* Reserved */
- DWORD        SRB_Hdr_Rsvd;             /* Reserved */
+ BYTE         SRB_Cmd;                  /* 00 ASPI cmd code = SC_RESET_DEV */
+ BYTE         SRB_Status;               /* 01 ASPI command status byte */
+ BYTE         SRB_HaId;                 /* 02 ASPI host adapter number */
+ BYTE         SRB_Flags;                /* 03 Reserved */
+ DWORD        SRB_Hdr_Rsvd;             /* 04 Reserved */
 } SRB_Header, *PSRB_Header;
 
 typedef union tagSRB32 {
diff --git a/misc/main.c b/misc/main.c
index 357db38..04d7fde 100644
--- a/misc/main.c
+++ b/misc/main.c
@@ -156,11 +156,11 @@
 
  error:  
   MESSAGE("%s: Syntax: --debugmsg [class]+xxx,...  or "
-      "-debugmsg [class]-xxx,...\n",argv0);
+      "--debugmsg [class]-xxx,...\n",argv0);
   MESSAGE("Example: --debugmsg +all,warn-heap\n"
       "  turn on all messages except warning heap messages\n");
   MESSAGE("Special case: --debugmsg +relay=DLL:DLL.###:FuncName\n"
-      "  turn on -debugmsg +relay only as specified\n"
+      "  turn on --debugmsg +relay only as specified\n"
       "Special case: --debugmsg -relay=DLL:DLL.###:FuncName\n"
       "  turn on --debugmsg +relay except as specified\n"
       "Also permitted, +snoop=..., -snoop=... as with relay.\n\n");
diff --git a/windows/class.c b/windows/class.c
index dc6c2d9..ff15fa4 100644
--- a/windows/class.c
+++ b/windows/class.c
@@ -9,7 +9,7 @@
  *	  win31->NT migration book)
  *
  * FIXME: There seems to be a general problem with hInstance in WINE
- *   classes are getting registred with wrong hInstance.
+ *   classes are getting registered with wrong hInstance.
  */
 
 #include <stdlib.h>
diff --git a/windows/message.c b/windows/message.c
index 12cb762..49c0eed 100644
--- a/windows/message.c
+++ b/windows/message.c
@@ -361,7 +361,7 @@
 /***********************************************************************
  *           MSG_TranslateKbdMsg
  *
- * Translate an keyboard hardware event into a real message.
+ * Translate a keyboard hardware event into a real message.
  */
 static DWORD MSG_TranslateKbdMsg( HWND hTopWnd, DWORD first, DWORD last,
 				  MSG *msg, BOOL remove )
@@ -508,7 +508,7 @@
   if (wtime<=0)
   {
    wtime=0;
-   if ((tmpMsg->message>= WM_KEYFIRST) && (tmpMsg->message <= WM_KEYLAST))
+   if ((tmpMsg->message >= WM_KEYFIRST) && (tmpMsg->message <= WM_KEYLAST))
    {
      wParam=tmpMsg->paramL & 0xFF;
      lParam=MAKELONG(tmpMsg->paramH&0x7ffff,tmpMsg->paramL>>8);
@@ -590,8 +590,6 @@
 static BOOL MSG_PeekHardwareMsg( MSG *msg, HWND hwnd, DWORD first, DWORD last,
                                    BOOL remove )
 {
-    /* FIXME: should deal with MSG32 instead of MSG16 */
-    
     DWORD status = SYSQ_MSG_ACCEPT;
     MESSAGEQUEUE *sysMsgQueue = QUEUE_GetSysQueue();
     enum { MOUSE_MSG = 0, KEYBOARD_MSG, HARDWARE_MSG } msgType;
@@ -789,7 +787,7 @@
  * Implementation of an inter-task SendMessage.
  * Return values:
  *    0 if error or timeout
- *    1 if successflul
+ *    1 if successful
  */
 static LRESULT MSG_SendMessageInterThread( HQUEUE16 hDestQueue,
                                            HWND hwnd, UINT msg,
@@ -2204,7 +2202,7 @@
     /* FIXME : should handle ToUnicode yielding 2 */
     switch (ToUnicode(wParam, HIWORD(lParam), QueueKeyStateTable, wp, 2, 0)) 
     {
-    case 1 :
+    case 1:
         message = (message == WM_KEYDOWN) ? WM_CHAR : WM_SYSCHAR;
         /* Should dead chars handling go in ToAscii ? */
         if (dead_char)
@@ -2232,7 +2230,7 @@
         PostMessageW( hwnd, message, wp[0], lParam );
         return TRUE;
 
-    case -1 :
+    case -1:
         message = (message == WM_KEYDOWN) ? WM_DEADCHAR : WM_SYSDEADCHAR;
         dead_char = wp[0];
         TRACE_(key)("-1 -> PostMessage(%s)\n", SPY_GetMsgName(message));
@@ -2293,9 +2291,9 @@
     {
 	if (msg->lParam)
         {
-            /* before calling window proc, verify it the timer is still valid,
-               there's a slim chance the application kill the timer between
-               getMessage and DisaptachMessage API calls */
+            /* before calling window proc, verify whether timer is still valid;
+               there's a slim chance that the application kills the timer
+	       between GetMessage and DispatchMessage API calls */
             if (!TIMER_IsTimerValid(msg->hwnd, (UINT) msg->wParam, (HWINDOWPROC) msg->lParam))
                 return 0; /* invalid winproc */
 
@@ -2377,9 +2375,9 @@
         {
 /*            HOOK_CallHooks32A( WH_CALLWNDPROC, HC_ACTION, 0, FIXME ); */
 
-            /* before calling window proc, verify it the timer is still valid,
-               there's a slim chance the application kill the timer between
-               getMessage and DisaptachMessage API calls */
+            /* before calling window proc, verify whether timer is still valid;
+               there's a slim chance that the application kills the timer
+	       between GetMessage and DispatchMessage API calls */
             if (!TIMER_IsTimerValid(msg->hwnd, (UINT) msg->wParam, (HWINDOWPROC) msg->lParam))
                 return 0; /* invalid winproc */
 
@@ -2460,9 +2458,9 @@
         {
 /*            HOOK_CallHooks32W( WH_CALLWNDPROC, HC_ACTION, 0, FIXME ); */
 
-            /* before calling window proc, verify it the timer is still valid,
-               there's a slim chance the application kill the timer between
-               getMessage and DisaptachMessage API calls */
+            /* before calling window proc, verify whether timer is still valid;
+               there's a slim chance that the application kills the timer
+	       between GetMessage and DispatchMessage API calls */
             if (!TIMER_IsTimerValid(msg->hwnd, (UINT) msg->wParam, (HWINDOWPROC) msg->lParam))
                 return 0; /* invalid winproc */
 
@@ -2598,8 +2596,10 @@
 /***********************************************************************
  *           SendMessageCallbackA
  * FIXME: It's like PostMessage. The callback gets called when the message
- * is processed. We have to modify the message processing for a exact
+ * is processed. We have to modify the message processing for an exact
  * implementation...
+ * The callback is only called when the thread that called us calls one of
+ * Get/Peek/WaitMessage.
  */
 BOOL WINAPI SendMessageCallbackA(
 	HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,
@@ -2617,9 +2617,7 @@
 }
 /***********************************************************************
  *           SendMessageCallbackW
- * FIXME: It's like PostMessage. The callback gets called when the message
- * is processed. We have to modify the message processing for a exact
- * implementation...
+ * FIXME: see SendMessageCallbackA.
  */
 BOOL WINAPI SendMessageCallbackW(
 	HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,