diff -Nurb libical-0.42.orig/src/libical/icalcomponent.c libical-0.42/src/libical/icalcomponent.c
--- libical-0.42.orig/src/libical/icalcomponent.c       2008-11-25 17:26:51.000000000 +0100
+++ libical-0.42/src/libical/icalcomponent.c    2009-01-13 16:14:16.665187740 +0100
@@ -47,6 +47,10 @@
 #include <string.h> /* for strdup */
 #include <limits.h> /* for INT_MAX */
 
+#ifdef WIN32
+#define strncasecmp _strnicmp
+#endif
+
 struct icalcomponent_impl 
 {
        char id[5];
diff -Nurb libical-0.42.orig/src/libical/icaltimezone.c libical-0.42/src/libical/icaltimezone.c
--- libical-0.42.orig/src/libical/icaltimezone.c	2008-11-25 17:26:51.000000000 +0100
+++ libical-0.42/src/libical/icaltimezone.c	2009-01-13 14:20:15.133184809 +0100
@@ -54,6 +54,10 @@
 
 /* The gmtime() in Microsoft's C library is MT-safe */
 #define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0)
+#undef PACKAGE_DATA_DIR
+#define PACKAGE_DATA_DIR "C:"
+#define snprintf	_snprintf
+#define strcasecmp	stricmp
 #endif
 
 /** This is the toplevel directory where the timezone data is installed in. */
diff -Nurb libical-0.42.orig/src/libical/icaltz-util.c libical-0.42/src/libical/icaltz-util.c
--- libical-0.42.orig/src/libical/icaltz-util.c	2008-11-25 17:26:51.000000000 +0100
+++ libical-0.42/src/libical/icaltz-util.c	2009-01-13 14:21:56.301183980 +0100
@@ -128,9 +128,9 @@
 static int
 decode (const void *ptr)
 {
-#if defined(sun) && defined(__SVR4)
+#if (defined(sun) && defined(__SVR4)) || defined(WIN32)
     if (sizeof (int) == 4)
-#ifdef _BIG_ENDIAN
+#if defined(_BIG_ENDIAN) || defined(WIN32)
         return *(const int *) ptr;
 #else
         return BSWAP_32 (*(const int *) ptr);
