diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index b1e58be671caaac5dbdfb7d938e69f512ff8343f..572a4fa5f9a0f527267ecfba2dcb95bb737ca4a7 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -36,6 +36,10 @@ to not run autocommands when leaving Vim? (James Vega, 2010 May 23)
 Invalid memory access when deleting funcref variable.  Patch by Lech Lorens,
 2010 May 25.
 
+Fixes for broken URLs:
+    Benjamin Haskell, 2010 May 25
+    Christian Brabandt, 2010 May 26, two messages
+
 Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
 
 E315 when trying to change a file in FileChangedRO autocommand event.
diff --git a/src/GvimExt/gvimext.h b/src/GvimExt/gvimext.h
index 3b6b40b104d2435788a3f57888763d84b1399cff..59747c90f82049ead3cd8cb99afe7aca5e1b9770 100644
--- a/src/GvimExt/gvimext.h
+++ b/src/GvimExt/gvimext.h
@@ -44,7 +44,7 @@
 #include <shlobj.h>
 
 /* Accommodate old versions of VC that don't have a modern Platform SDK */
-#if defined(_MSC_VER) && _MSC_VER < 1300
+#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
 # undef  UINT_PTR
 # define UINT_PTR UINT
 #endif
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 97398157758dcef9d14128c78a6b536324252dc6..8a663d98bd792a5256132d9bea89c5ae41d091ce 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -183,9 +183,10 @@
 # define ID_BEVAL_TOOLTIP   200
 # define BEVAL_TEXT_LEN	    MAXPATHL
 
-#if _MSC_VER < 1300 || !defined(UINT_PTR)
+#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
 /* Work around old versions of basetsd.h which wrongly declares
  * UINT_PTR as unsigned long. */
+# undef  UINT_PTR
 # define UINT_PTR UINT
 #endif
 
@@ -4697,7 +4698,7 @@ gui_mch_enable_beval_area(beval)
     if (beval == NULL)
 	return;
     // TRACE0("gui_mch_enable_beval_area {{{");
-    BevalTimerId = SetTimer(s_textArea, 0, p_bdlay / 2, BevalTimerProc);
+    BevalTimerId = SetTimer(s_textArea, 0, (UINT)(p_bdlay / 2), BevalTimerProc);
     // TRACE0("gui_mch_enable_beval_area }}}");
 }
 
diff --git a/src/if_ole.cpp b/src/if_ole.cpp
index fc3077dfe097b8479997a2a7f260920f70c3e74e..1e5eee65a196cb980aaf60a9709480231d8b6378 100644
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -34,9 +34,10 @@ extern HWND s_hwnd;
 extern HWND vim_parent_hwnd;
 }
 
-#if _MSC_VER < 1300
+#if (defined(_MSC_VER) && _MSC_VER < 1300) || !defined(MAXULONG_PTR)
 /* Work around old versions of basetsd.h which wrongly declares
  * UINT_PTR as unsigned long */
+# undef UINT_PTR
 # define UINT_PTR UINT
 #endif