diff --git a/configure b/configure
index 9234fc00097270a255deb925885fd88acdb2927f..b03601602f49fb6971442cf717311c3813007bbf 100755
--- a/configure
+++ b/configure
@@ -1668,13 +1668,15 @@ fi
 ##########################################
 # imlib check
 
-temp_extralibs -lImlib2
+if (imlib2-config --version) >/dev/null 2>&1 ; then
+    temp_cflags `imlib2-config --cflags`
+    temp_extralibs `imlib2-config --libs`
 check_ld <<EOF && imlib2=yes || imlib2=no
-#include <X11/Xlib.h>
 #include <Imlib2.h>
 int main( void ) { return (int) imlib_load_font("foo"); }
 EOF
 restore_flags
+fi
 
 ##########################################
 # FreeType check
diff --git a/vhook/Makefile b/vhook/Makefile
index 06b48935e0168905f811f3114eff19c47d7329ab..e7a103bb66152c5ad7a5c0803de430d3ed5a9a34 100644
--- a/vhook/Makefile
+++ b/vhook/Makefile
@@ -11,7 +11,8 @@ ALLHOOKS=$(HOOKS) imlib2$(SLIBSUF) drawtext$(SLIBSUF)
 
 ifeq ($(HAVE_IMLIB2),yes)
     HOOKS += imlib2$(SLIBSUF)
-    LIBS_imlib2$(SLIBSUF) = -lImlib2
+    CFLAGS += `imlib2-config --cflags`
+    LIBS_imlib2$(SLIBSUF) = `imlib2-config --libs`
 endif
 
 ifeq ($(HAVE_FREETYPE2),yes)
diff --git a/vhook/imlib2.c b/vhook/imlib2.c
index 87c54cf0bf6ae08ea05d1cc01bbcc6f5e78c745f..1c137724f5bcfdf9a96b39007d89f2ef66d58cdf 100644
--- a/vhook/imlib2.c
+++ b/vhook/imlib2.c
@@ -103,7 +103,6 @@
 #undef time
 #include <sys/time.h>
 #include <time.h>
-#include <X11/Xlib.h>
 #include <Imlib2.h>
 #include "eval.h"