diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 41276473a8b150aa5d00493ab9c09207fcbd0801..70de84e849a417bc1dc0b2e9eb22ecbdd7ee4834 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,7 @@
+2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
+
+	misc.c (GC_init): Replace lhs cast with rhs cast.
+
 2004-08-16  Bryce McKinlay  <mckinlay@redhat.com>
 
 	* specific.c: Check GC_LINUX_THREADS before including 
diff --git a/boehm-gc/misc.c b/boehm-gc/misc.c
index 5b10feeb961faa9badb793eae3b4659ed24cab5c..2b69a00055ad63198894228b98ce09be660e908e 100644
--- a/boehm-gc/misc.c
+++ b/boehm-gc/misc.c
@@ -479,8 +479,9 @@ void GC_init()
       BOOL (WINAPI *pfn) (LPCRITICAL_SECTION, DWORD) = NULL;
       HMODULE hK32 = GetModuleHandle("kernel32.dll");
       if (hK32)
-          (FARPROC) pfn = GetProcAddress(hK32,
-			  "InitializeCriticalSectionAndSpinCount");
+	  pfn = (BOOL (WINAPI *) (LPCRITICAL_SECTION, DWORD))
+		GetProcAddress (hK32,
+				"InitializeCriticalSectionAndSpinCount");
       if (pfn)
           pfn(&GC_allocate_ml, 4000);
       else