diff --git a/windows/message.c b/windows/message.c
index db9284d..f2232e6 100644
--- a/windows/message.c
+++ b/windows/message.c
@@ -2065,7 +2065,7 @@
 }
 
 /***********************************************************************
- *		MsgWaitForMultipleObjects16 (USER.640)
+ *		MsgWaitForMultipleObjects (USER.640)
  */
 DWORD WINAPI MsgWaitForMultipleObjects16( DWORD nCount, HANDLE *pHandles,
                                           BOOL fWaitAll, DWORD dwMilliseconds,
diff --git a/windows/user.c b/windows/user.c
index ce9d19c..db049b8 100644
--- a/windows/user.c
+++ b/windows/user.c
@@ -356,7 +356,7 @@
 }
 
 /***********************************************************************
- *		ChangeDisplaySettings16 (USER.620)
+ *		ChangeDisplaySettings (USER.620)
  */
 LONG WINAPI ChangeDisplaySettings16( LPDEVMODEA devmode, DWORD flags )
 {
@@ -449,7 +449,7 @@
 }
 
 /***********************************************************************
- *		EnumDisplaySettings16 (USER.621)
+ *		EnumDisplaySettings (USER.621)
  */
 BOOL16 WINAPI EnumDisplaySettings16(
 	LPCSTR name,		/* [in] huh? */
diff --git a/windows/x11drv/clipboard.c b/windows/x11drv/clipboard.c
index 57ad548..1e61229 100644
--- a/windows/x11drv/clipboard.c
+++ b/windows/x11drv/clipboard.c
@@ -777,7 +777,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_ReleaseClipboard (X11DRV.@)
+ *		ReleaseClipboard (X11DRV.@)
  *  Voluntarily release all currently owned X selections
  */
 void X11DRV_ReleaseClipboard(void)
@@ -828,7 +828,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_AcquireClipboard (X11DRV.@)
+ *		AcquireClipboard (X11DRV.@)
  */
 void X11DRV_AcquireClipboard(void)
 {
@@ -878,7 +878,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_IsClipboardFormatAvailable (X11DRV.@)
+ *		IsClipboardFormatAvailable (X11DRV.@)
  *
  * Checks if the specified format is available in the current selection
  * Only invoked when WINE is not the selection owner
@@ -935,7 +935,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_RegisterClipboardFormat (X11DRV.@)
+ *		RegisterClipboardFormat (X11DRV.@)
  *
  * Registers a custom X clipboard format
  * Returns: TRUE - success,  FALSE - failure
@@ -961,7 +961,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_IsSelectionOwner (X11DRV.@)
+ *		IsSelectionOwner (X11DRV.@)
  *
  * Returns: TRUE - We(WINE) own the selection, FALSE - Selection not owned by us
  */
@@ -971,7 +971,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_SetClipboardData (X11DRV.@)
+ *		SetClipboardData (X11DRV.@)
  *
  * We don't need to do anything special here since the clipboard code
  * maintains the cache. 
@@ -984,7 +984,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_GetClipboardData (X11DRV.@)
+ *		GetClipboardData (X11DRV.@)
  *
  * This method is invoked only when we DO NOT own the X selection
  *
@@ -1062,7 +1062,7 @@
 }
 
 /**************************************************************************
- *		X11DRV_ResetSelectionOwner (X11DRV.@)
+ *		ResetSelectionOwner (X11DRV.@)
  *
  * Called from DestroyWindow() to prevent X selection from being lost when
  * a top level window is destroyed, by switching ownership to another top
diff --git a/windows/x11drv/keyboard.c b/windows/x11drv/keyboard.c
index 4e2592e..12932e0 100644
--- a/windows/x11drv/keyboard.c
+++ b/windows/x11drv/keyboard.c
@@ -910,7 +910,7 @@
 }
 
 /**********************************************************************
- *		X11DRV_InitKeyboard (X11DRV.@)
+ *		InitKeyboard (X11DRV.@)
  */
 void X11DRV_InitKeyboard(void)
 {
@@ -1140,7 +1140,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_VkKeyScan (X11DRV.@)
+ *		VkKeyScan (X11DRV.@)
  */
 WORD X11DRV_VkKeyScan(CHAR cChar)
 {
@@ -1188,7 +1188,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_MapVirtualKey (X11DRV.@)
+ *		MapVirtualKey (X11DRV.@)
  */
 UINT16 X11DRV_MapVirtualKey(UINT16 wCode, UINT16 wMapType)
 {
@@ -1272,7 +1272,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_GetKeyNameText (X11DRV.@)
+ *		GetKeyNameText (X11DRV.@)
  */
 INT16 X11DRV_GetKeyNameText(LONG lParam, LPSTR lpBuffer, INT16 nSize)
 {
@@ -1444,7 +1444,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_ToUnicode (X11DRV.@)
+ *		ToUnicode (X11DRV.@)
  *
  * The ToUnicode function translates the specified virtual-key code and keyboard
  * state to the corresponding Windows character or characters.
@@ -1604,7 +1604,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_GetBeepActive (X11DRV.@)
+ *		GetBeepActive (X11DRV.@)
  */
 BOOL X11DRV_GetBeepActive(void)
 {
@@ -1616,7 +1616,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_SetBeepActive (X11DRV.@)
+ *		SetBeepActive (X11DRV.@)
  */
 void X11DRV_SetBeepActive(BOOL bActivate)
 {
@@ -1631,7 +1631,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_Beep (X11DRV.@)
+ *		Beep (X11DRV.@)
  */
 void X11DRV_Beep(void)
 {
@@ -1639,7 +1639,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_GetDIState (X11DRV.@)
+ *		GetDIState (X11DRV.@)
  */
 BOOL X11DRV_GetDIState(DWORD len, LPVOID ptr)
 {
@@ -1664,7 +1664,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_GetDIData (X11DRV.@)
+ *		GetDIData (X11DRV.@)
  */
 BOOL X11DRV_GetDIData(
   BYTE *keystate,
@@ -1708,7 +1708,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_GetKeyboardConfig (X11DRV.@)
+ *		GetKeyboardConfig (X11DRV.@)
  */
 void X11DRV_GetKeyboardConfig(KEYBOARD_CONFIG *cfg) {
   XKeyboardState   xks;
@@ -1719,7 +1719,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_SetKeyboardConfig (X11DRV.@)
+ *		SetKeyboardConfig (X11DRV.@)
  */
 void X11DRV_SetKeyboardConfig(KEYBOARD_CONFIG *cfg, DWORD mask) {
   XKeyboardControl xkc;
diff --git a/windows/x11drv/mouse.c b/windows/x11drv/mouse.c
index edf57c4..0c68c0b 100644
--- a/windows/x11drv/mouse.c
+++ b/windows/x11drv/mouse.c
@@ -162,7 +162,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_SetCursor (X11DRV.@)
+ *		SetCursor (X11DRV.@)
  */
 void X11DRV_SetCursor( CURSORICONINFO *lpCursor )
 {
@@ -200,7 +200,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_MoveCursor (X11DRV.@)
+ *		MoveCursor (X11DRV.@)
  */
 void X11DRV_MoveCursor(WORD wAbsX, WORD wAbsY)
 {
@@ -242,7 +242,7 @@
 }
 
 /***********************************************************************
- *		X11DRV_InitMouse (X11DRV.@)
+ *		InitMouse (X11DRV.@)
  */
 void X11DRV_InitMouse( LPMOUSE_EVENT_PROC proc )
 {
