diff --git configure configure
index 7e2b5a0..cce9c7f 100755
--- configure
+++ configure
@@ -10869,7 +10869,23 @@ elif test -n "$PKG_CONFIG"; then :
 fi
 FREETYPE_LIBS=${FREETYPE_LIBS:-`(freetype-config --libs || freetype2-config --libs) 2>/dev/null`}
 FREETYPE_LIBS=${FREETYPE_LIBS:-"-lfreetype"}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfreetype" >&5
+ac_save_CPPFLAGS=$CPPFLAGS
+CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
+for ac_header in ft2build.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "ft2build.h" "ac_cv_header_ft2build_h" "$ac_includes_default"
+if test "x$ac_cv_header_ft2build_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_FT2BUILD_H 1
+_ACEOF
+
+fi
+
+done
+
+        if test "$ac_cv_header_ft2build_h" = "yes"
+        then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -lfreetype" >&5
 $as_echo_n "checking for -lfreetype... " >&6; }
 if ${ac_cv_lib_soname_freetype+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -10911,7 +10927,7 @@ fi
 if test "x$ac_cv_lib_soname_freetype" = "x"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-       ft_lib=no
+       FREETYPE_LIBS=""
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soname_freetype" >&5
 $as_echo "$ac_cv_lib_soname_freetype" >&6; }
@@ -10920,51 +10936,11 @@ cat >>confdefs.h <<_ACEOF
 #define SONAME_LIBFREETYPE "$ac_cv_lib_soname_freetype"
 _ACEOF
 
-       ft_lib=yes
-fi
-    if test "$ft_lib" = "yes"
-    then
-	for ac_header in ft2build.h \
-                         freetype/freetype.h \
-                         freetype/ftglyph.h \
-                         freetype/fttypes.h \
-                         freetype/tttables.h \
-                         freetype/ftsnames.h \
-                         freetype/ttnameid.h \
-                         freetype/ftoutln.h \
-                         freetype/ftwinfnt.h \
-                         freetype/ftmodapi.h \
-                         freetype/ftlcdfil.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#ifdef HAVE_FT2BUILD_H
-                          # include <ft2build.h>
-                          #endif
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-
-done
-
-	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ft2build.h>
-                    #include <freetype/fttrigon.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-$as_echo "#define HAVE_FREETYPE_FTTRIGON_H 1" >>confdefs.h
+$as_echo "#define HAVE_FREETYPE 1" >>confdefs.h
 
-                    wine_cv_fttrigon=yes
-else
-  wine_cv_fttrigon=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-        ac_fn_c_check_type "$LINENO" "FT_TrueTypeEngineType" "ac_cv_type_FT_TrueTypeEngineType" "#include <freetype/ftmodapi.h>
+                 ac_fn_c_check_type "$LINENO" "FT_TrueTypeEngineType" "ac_cv_type_FT_TrueTypeEngineType" "#include <ft2build.h>
+#include FT_MODULE_H
 "
 if test "x$ac_cv_type_FT_TrueTypeEngineType" = xyes; then :
 
@@ -10975,27 +10951,21 @@ _ACEOF
 
 fi
 
-		if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
-	then
-
-$as_echo "#define HAVE_FREETYPE 1" >>confdefs.h
-
+fi
         else
+            FREETYPE_CFLAGS=""
             FREETYPE_LIBS=""
-	fi
-    else
-        FREETYPE_LIBS=""
     fi
     CPPFLAGS="$ac_save_CPPFLAGS"
 fi
-if test "x$ac_cv_header_freetype_freetype_h" != xyes -o "x$wine_cv_fttrigon" != xyes; then :
+if test "x$ac_cv_lib_soname_freetype" = x; then :
   case "x$with_freetype" in
   xno) ;;
   *)   as_fn_error $? "FreeType ${notice_platform}development files not found. Fonts will not be built.
 Use the --without-freetype option if you really want this." "$LINENO" 5 ;;
 esac
 fi
-test "x$ac_cv_header_freetype_freetype_h" = xyes -a "x$wine_cv_fttrigon" = xyes || enable_fonts=${enable_fonts:-no}
+test "x$ac_cv_lib_soname_freetype" = x && enable_fonts=${enable_fonts:-no}
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for parport header/ppdev.h" >&5
 $as_echo_n "checking for parport header/ppdev.h... " >&6; }
diff --git dlls/gdi32/freetype.c dlls/gdi32/freetype.c
index 74c5905..6f7d1c1 100644
--- dlls/gdi32/freetype.c
+++ dlls/gdi32/freetype.c
@@ -77,6 +77,23 @@
 #undef SetRectRgn
 #endif /* HAVE_CARBON_CARBON_H */
 
+#ifdef HAVE_FT2BUILD_H
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_GLYPH_H
+#include FT_TYPES_H
+#include FT_TRUETYPE_TABLES_H
+#include FT_SFNT_NAMES_H
+#include FT_TRUETYPE_IDS_H
+#include FT_OUTLINE_H
+#include FT_TRIGONOMETRY_H
+#include FT_MODULE_H
+#include FT_WINFONTS_H
+#ifdef FT_LCD_FILTER_H
+#include FT_LCD_FILTER_H
+#endif
+#endif /* HAVE_FT2BUILD_H */
+
 #include "windef.h"
 #include "winbase.h"
 #include "winternl.h"
@@ -95,43 +112,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(font);
 
 #ifdef HAVE_FREETYPE
 
-#ifdef HAVE_FT2BUILD_H
-#include <ft2build.h>
-#endif
-#ifdef HAVE_FREETYPE_FREETYPE_H
-#include <freetype/freetype.h>
-#endif
-#ifdef HAVE_FREETYPE_FTGLYPH_H
-#include <freetype/ftglyph.h>
-#endif
-#ifdef HAVE_FREETYPE_TTTABLES_H
-#include <freetype/tttables.h>
-#endif
-#ifdef HAVE_FREETYPE_FTTYPES_H
-#include <freetype/fttypes.h>
-#endif
-#ifdef HAVE_FREETYPE_FTSNAMES_H
-#include <freetype/ftsnames.h>
-#endif
-#ifdef HAVE_FREETYPE_TTNAMEID_H
-#include <freetype/ttnameid.h>
-#endif
-#ifdef HAVE_FREETYPE_FTOUTLN_H
-#include <freetype/ftoutln.h>
-#endif
-#ifdef HAVE_FREETYPE_FTTRIGON_H
-#include <freetype/fttrigon.h>
-#endif
-#ifdef HAVE_FREETYPE_FTWINFNT_H
-#include <freetype/ftwinfnt.h>
-#endif
-#ifdef HAVE_FREETYPE_FTMODAPI_H
-#include <freetype/ftmodapi.h>
-#endif
-#ifdef HAVE_FREETYPE_FTLCDFIL_H
-#include <freetype/ftlcdfil.h>
-#endif
-
 #ifndef HAVE_FT_TRUETYPEENGINETYPE
 typedef enum
 {
@@ -184,7 +164,7 @@ MAKE_FUNCPTR(FT_Set_Pixel_Sizes);
 MAKE_FUNCPTR(FT_Vector_Transform);
 MAKE_FUNCPTR(FT_Vector_Unit);
 static FT_TrueTypeEngineType (*pFT_Get_TrueType_Engine_Type)(FT_Library);
-#ifdef HAVE_FREETYPE_FTLCDFIL_H
+#ifdef FT_LCD_FILTER_H
 static FT_Error (*pFT_Library_SetLcdFilter)(FT_Library, FT_LcdFilter);
 #endif
 
@@ -922,7 +902,7 @@ static BOOL is_hinting_enabled(void)
 
 static BOOL is_subpixel_rendering_enabled( void )
 {
-#ifdef HAVE_FREETYPE_FTLCDFIL_H
+#ifdef FT_LCD_FILTER_H
     static int enabled = -1;
     if (enabled == -1)
     {
@@ -3910,7 +3890,7 @@ static BOOL init_freetype(void)
 #undef LOAD_FUNCPTR
     /* Don't warn if these ones are missing */
     pFT_Get_TrueType_Engine_Type = wine_dlsym(ft_handle, "FT_Get_TrueType_Engine_Type", NULL, 0);
-#ifdef HAVE_FREETYPE_FTLCDFIL_H
+#ifdef FT_LCD_FILTER_H
     pFT_Library_SetLcdFilter = wine_dlsym(ft_handle, "FT_Library_SetLcdFilter", NULL, 0);
 #endif
 
@@ -6653,7 +6633,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format,
     case WINE_GGO_HBGR_BITMAP:
     case WINE_GGO_VRGB_BITMAP:
     case WINE_GGO_VBGR_BITMAP:
-#ifdef HAVE_FREETYPE_FTLCDFIL_H
+#ifdef FT_LCD_FILTER_H
       {
         switch (ft_face->glyph->format)
         {
diff --git include/config.h.in include/config.h.in
index 7c35aca..b2459f0 100644
--- include/config.h.in
+++ include/config.h.in
@@ -132,39 +132,6 @@
 /* Define if FreeType 2 is installed */
 #undef HAVE_FREETYPE
 
-/* Define to 1 if you have the <freetype/freetype.h> header file. */
-#undef HAVE_FREETYPE_FREETYPE_H
-
-/* Define to 1 if you have the <freetype/ftglyph.h> header file. */
-#undef HAVE_FREETYPE_FTGLYPH_H
-
-/* Define to 1 if you have the <freetype/ftlcdfil.h> header file. */
-#undef HAVE_FREETYPE_FTLCDFIL_H
-
-/* Define to 1 if you have the <freetype/ftmodapi.h> header file. */
-#undef HAVE_FREETYPE_FTMODAPI_H
-
-/* Define to 1 if you have the <freetype/ftoutln.h> header file. */
-#undef HAVE_FREETYPE_FTOUTLN_H
-
-/* Define to 1 if you have the <freetype/ftsnames.h> header file. */
-#undef HAVE_FREETYPE_FTSNAMES_H
-
-/* Define if you have the <freetype/fttrigon.h> header file. */
-#undef HAVE_FREETYPE_FTTRIGON_H
-
-/* Define to 1 if you have the <freetype/fttypes.h> header file. */
-#undef HAVE_FREETYPE_FTTYPES_H
-
-/* Define to 1 if you have the <freetype/ftwinfnt.h> header file. */
-#undef HAVE_FREETYPE_FTWINFNT_H
-
-/* Define to 1 if you have the <freetype/ttnameid.h> header file. */
-#undef HAVE_FREETYPE_TTNAMEID_H
-
-/* Define to 1 if you have the <freetype/tttables.h> header file. */
-#undef HAVE_FREETYPE_TTTABLES_H
-
 /* Define to 1 if the system has the type `fsblkcnt_t'. */
 #undef HAVE_FSBLKCNT_T
 
