diff --git a/windows/cursoricon.c b/windows/cursoricon.c
index 0293578..bd78baa 100644
--- a/windows/cursoricon.c
+++ b/windows/cursoricon.c
@@ -523,7 +523,7 @@
 		CBM_INIT, (char*)bmi + size, pInfo, DIB_RGB_COLORS );
 	    if( hXorBits )
 	    {
-		char* bits = (char *)bmi + size +
+		char* xbits = (char *)bmi + size +
 			DIB_GetDIBImageBytes(bmi->bmiHeader.biWidth,
 					     bmi->bmiHeader.biHeight,
 					     bmi->bmiHeader.biBitCount) / 2;
@@ -558,14 +558,14 @@
 		  hOld = SelectObject(hMem, hAndBits);
 	          res = StretchDIBits(hMem, 0, 0, width, height, 0, 0,
 		    pInfo->bmiHeader.biWidth, pInfo->bmiHeader.biHeight,
-		    bits, pInfo, DIB_RGB_COLORS, SRCCOPY);
+		    xbits, pInfo, DIB_RGB_COLORS, SRCCOPY);
 		  SelectObject(hMem, hOld);
 		  DeleteDC(hMem);
 	        } else res = FALSE;
 		if (!res) { DeleteObject(hAndBits); hAndBits = 0; }
 	      }
 	    } else hAndBits = CreateDIBitmap( hdc, &pInfo->bmiHeader,
-	      CBM_INIT, bits, pInfo, DIB_RGB_COLORS );
+	      CBM_INIT, xbits, pInfo, DIB_RGB_COLORS );
 
 		if( !hAndBits ) DeleteObject( hXorBits );
 	    }
diff --git a/windows/input.c b/windows/input.c
index 1adf1ae..6ae9788 100644
--- a/windows/input.c
+++ b/windows/input.c
@@ -398,10 +398,10 @@
         
         if( capturePrev )
     {
-        WND* wndPtr = WIN_FindWndPtr( capturePrev );
-        if( wndPtr && (wndPtr->flags & WIN_ISWIN32) )
+        WND* xwndPtr = WIN_FindWndPtr( capturePrev );
+        if( xwndPtr && (xwndPtr->flags & WIN_ISWIN32) )
             SendMessageA( capturePrev, WM_CAPTURECHANGED, 0L, hwnd);
-            WIN_ReleaseWndPtr(wndPtr);
+	WIN_ReleaseWndPtr(xwndPtr);
     }
 }
 
diff --git a/windows/msgbox.c b/windows/msgbox.c
index f3cbc40..a559880 100644
--- a/windows/msgbox.c
+++ b/windows/msgbox.c
@@ -35,7 +35,6 @@
 
     if (TWEAK_WineLook >= WIN95_LOOK) {
 	NONCLIENTMETRICSA nclm;
-	INT i;
 	nclm.cbSize = sizeof(NONCLIENTMETRICSA);
 	SystemParametersInfoA (SPI_GETNONCLIENTMETRICS, 0, &nclm, 0);
 	hFont = CreateFontIndirectA (&nclm.lfMessageFont);
diff --git a/windows/winpos.c b/windows/winpos.c
index dedcb6c..06f2f25 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -2662,12 +2662,12 @@
 			  != (SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER)) )
 	{
 	    /* get a previous visible region for SWP_CopyValidBits() */
-	    DWORD flags = DCX_WINDOW;
+	    DWORD dflags = DCX_WINDOW;
   
             if (wndPtr->dwStyle & WS_CLIPSIBLINGS)
-               flags |= DCX_CLIPSIBLINGS;
+               dflags |= DCX_CLIPSIBLINGS;
 
-	    visRgn = DCE_GetVisRgn(hwnd, flags, 0, 0);
+	    visRgn = DCE_GetVisRgn(hwnd, dflags, 0, 0);
 	}
     }
 
