diff --git a/configure b/configure
index aa76315c652e27ad4cc45fbd823580b71d93c0bf..13e49d120d3d38b099e6cf67e012796dac5a59d0 100755
--- a/configure
+++ b/configure
@@ -1178,13 +1178,29 @@ enabled mp3lame && require LAME lame/lame.h lame_init -lmp3lame
 enabled libogg  && require libogg ogg/ogg.h ogg_sync_init -logg
 enabled vorbis  && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbis -lvorbisenc
 enabled theora  && require libtheora theora/theora.h theora_info_init -ltheora
-enabled faac    && require libfaac faac.h faacEncOpen -lfaac
 enabled faad    && require libfaad faad.h faacDecOpen -lfaad
 enabled xvid    && require XviD xvid.h xvid_global -lxvidcore
 enabled x264    && require x264 x264.h x264_encoder_open -lx264
 enabled dc1394  && require libdc1394 libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394
 enabled sunmlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
 
+# Ugh, faac uses stdcall calling convention on win32 so we can't use
+# the generic test functions
+if enabled faac; then
+    save_flags
+    temp_extralibs -lfaac
+    check_ld <<EOF && add_extralibs -lfaac || die "ERROR: libfaac not found"
+#include <stdint.h>
+#include <faac.h>
+int main(){
+    char *id, *cpr;
+    faacEncGetVersion(&id, &cpr);
+    return 0;
+}
+EOF
+    restore_flags
+fi
+
 # test for lrintf in math.h
 check_exec <<EOF && have_lrintf=yes || have_lrintf=no
 #define _ISOC9X_SOURCE  1