Fix definition of UINT_PTR for 64 bit systems.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index b1e58be..572a4fa 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -36,6 +36,10 @@
 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 3b6b40b..59747c9 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 9739815..8a663d9 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 @@
     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 fc3077d..1e5eee6 100644
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -34,9 +34,10 @@
 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