diff -urN middleman-2.0.1/src/main.c middleman/src/main.c --- middleman-2.0.1/src/main.c 2004-03-11 17:28:57.000000000 -0500 +++ middleman/src/main.c 2006-02-02 11:36:16.000000000 -0500 @@ -407,7 +407,7 @@ #else pcre_free = xfree; // grr... argument to malloc is int on some systems, and long on others - (void *) pcre_malloc = (void *) xmalloc; + pcre_malloc = (void* (*)(size_t))xmalloc; #endif global->dns_cache = hash_create(DNS_HASH_SIZE); diff -urN middleman-2.0.1/src/stats.c middleman/src/stats.c --- middleman-2.0.1/src/stats.c 2004-03-11 17:27:16.000000000 -0500 +++ middleman/src/stats.c 2006-02-02 11:31:10.000000000 -0500 @@ -175,7 +175,7 @@ sc.name = stat; sc.type = type | StatCounter::CALLBACK; - (void *)sc.value.callback = (void *)cb; + sc.value.callback = (void* (*)())cb; counter_list.push_back(sc); @@ -193,7 +193,7 @@ sc.name = stat; sc.type = type | StatCounter::CALLBACK; - (void *)sc.value.callback = (void *)cb; + sc.value.callback = (void* (*)())cb; counter_list.push_back(sc); @@ -268,7 +268,7 @@ if (type & STRING) string_val = (char *)value.callback(); else - uint_val = (unsigned int)value.callback(); + uint_val = (unsigned int)(size_t)value.callback(); } else uint_val = value.count; .