diff -r -u libcaca-0.99.beta16-old/caca/caca.h libcaca-0.99.beta16-new/caca/caca.h
--- libcaca-0.99.beta16-old/caca/caca.h	2008-09-29 23:01:48 +0000
+++ libcaca-0.99.beta16-new/caca/caca.h	2008-10-22 09:37:10 +0000
@@ -28,10 +28,18 @@
 
 #undef __extern
 #if defined(_DOXYGEN_SKIP_ME)
-#elif defined(_WIN32) && defined(__LIBCACA__)
+#elif defined(_WIN32)
+# ifdef __LIBCACA__
+#  ifdef DLL_EXPORT
 #   define __extern extern __declspec(dllexport)
-#else
+#  else
 #   define __extern extern
+#  endif
+# else
+#  define __extern extern __declspec(dllimport)
+# endif
+#else
+# define __extern extern
 #endif
 
 /** libcaca API version */
@@ -473,7 +481,11 @@
 
 #   if defined __GNUC__ && __GNUC__ >= 3
 #       define CACA_DEPRECATED __attribute__ ((__deprecated__))
-#       define CACA_ALIAS(x) __attribute__ ((weak, alias(#x)))
+#       if __GNUC__ > 3
+#           define CACA_ALIAS(x) __attribute__ ((weak, alias(#x)))
+#       else
+#           define CACA_ALIAS(x) __attribute__ ((alias(#x)))
+#       endif
 #   else
 #       define CACA_DEPRECATED
 #       define CACA_ALIAS(x)
diff -r -u libcaca-0.99.beta16-old/caca/caca0.h libcaca-0.99.beta16-new/caca/caca0.h
--- libcaca-0.99.beta16-old/caca/caca0.h	2008-09-29 23:01:48 +0000
+++ libcaca-0.99.beta16-new/caca/caca0.h	2008-10-22 09:23:58 +0000
@@ -24,10 +24,18 @@
 
 #undef __extern
 #if defined(_DOXYGEN_SKIP_ME)
-#elif defined(_WIN32) && defined(__LIBCACA__)
+#elif defined(_WIN32)
+# ifdef __LIBCACA__
+#  ifdef DLL_EXPORT
 #   define __extern extern __declspec(dllexport)
-#else
+#  else
 #   define __extern extern
+#  endif
+# else
+#  define __extern extern __declspec(dllimport)
+# endif
+#else
+# define __extern extern
 #endif
 
 #ifdef __cplusplus
@@ -205,4 +213,6 @@
 }
 #endif
 
+#undef __extern
+
 #endif /* __CACA0_H__ */
diff -r -u libcaca-0.99.beta16-old/tools/makefont.c libcaca-0.99.beta16-new/tools/makefont.c
--- libcaca-0.99.beta16-old/tools/makefont.c	2008-09-27 15:58:05 +0000
+++ libcaca-0.99.beta16-new/tools/makefont.c	2008-10-22 09:13:22 +0000
@@ -25,6 +25,10 @@
 #   include <arpa/inet.h>
 #elif defined HAVE_NETINET_IN_H
 #   include <netinet/in.h>
+#elif defined HAVE_WINSOCK2_H
+#   define WIN32_LEAN_AND_MEAN
+#   include <winsock2.h>
+#   define NEED_WINSOCK2
 #endif
 
 #include <pango/pango.h>
@@ -101,6 +105,9 @@
 
     unsigned int bpp, dpi;
     char const *prefix, *font;
+#ifdef NEED_WINSOCK2
+    WSADATA wsaData;
+#endif
 
     if(argc != 5)
     {
@@ -123,6 +130,10 @@
 
     fprintf(stderr, "Font \"%s\", %i dpi, %i bpp\n", font, dpi, bpp);
 
+#ifdef NEED_WINSOCK2
+    /* initialize Winsock */
+    WSAStartup((WORD)MAKEWORD(2, 0), &wsaData);
+#endif
     /* Initialise Pango */
     fm = pango_ft2_font_map_new();
     pango_ft2_font_map_set_resolution(PANGO_FT2_FONT_MAP(fm), dpi, dpi);
