Index: adesklets-0.6.1/configure.ac
===================================================================
--- adesklets-0.6.1.orig/configure.ac
+++ adesklets-0.6.1/configure.ac
@@ -1,4 +1,4 @@
-dnl Initialize autoconf and automake
+nl Initialize autoconf and automake
 AC_INIT
 AC_CONFIG_SRCDIR(src/main.c)
 AC_PREREQ(2.52)
@@ -428,7 +428,18 @@ AC_TRY_LINK(
 #include <fontconfig/fontconfig.h>
 , FcInit(),
 AC_MSG_RESULT([yes])
-AC_DEFINE(HAVE_FONTCONFIG_FONTCONFIG_H,1,[Define to 1 if you have the <fontconfig/fontconfig.h> header file.]),
+AC_DEFINE(HAVE_FONTCONFIG_FONTCONFIG_H,1,[Define to 1 if you have the <fontconfig/fontconfig.h> header file.])
+
+AC_MSG_CHECKING([For fontconfig FcFini()])
+AC_TRY_LINK(
+#include <fontconfig/fontconfig.h>
+, FcFini(),
+AC_MSG_RESULT([yes])
+AC_DEFINE(HAVE_FONTCONFIG_FCFINI,1,[Define to 1 if FcFini() call exists])
+,
+AC_MSG_RESULT([no]))
+
+,
 AC_MSG_RESULT([no])
 FONTCONFIG_LIBS=
 FONTCONFIG_CFLAGS=


Index: adesklets-0.6.1.orig/src/xwindow.c
===================================================================
--- adesklets-0.6.1.orig/src/xwindow.c
+++ adesklets-0.6.1/src/xwindow.c
@@ -123,9 +123,17 @@ xwindow_locate_truetype_fonts(void)
 	  if ((strlen((char*)file)>4) && 
 	      (strstr((char*)file+strlen((char*)file)-4,".ttf")))
 	    imlib_add_path_to_font_path(dirname((char*)file));
-      FcFontSetDestroy(fs);
-      FcObjectSetDestroy(os);
     }
+#ifdef HAVE_FONTCONFIG_FCFINI
+   FcFini();
+#else
+   /* On FontConfig >= 2.4, this causes a segfault, probably due to the new 
+      caching mechanism: we don't have to care, since FcFini() always exists, 
+      and does the dirty dessalocation job just fine.
+   */
+   if (fs) FcFontSetDestroy(fs);
+   FcObjectSetDestroy(os);
+#endif
   }
 #endif
   imlib_add_path_to_font_path(".");
