Use FT_Done_MM_Var if available
diff --git a/configure.ac b/configure.ac
index e80479e..391071c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -320,7 +320,7 @@
fontconfig_save_cflags="$CFLAGS"
LIBS="$LIBS $FREETYPE_LIBS"
CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
-AC_CHECK_FUNCS(FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format)
+AC_CHECK_FUNCS(FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Done_MM_Var)
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#include <ft2build.h>
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 22d651d..4d076b7 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -2170,7 +2170,11 @@
} while (!err && (!index_set || face_num == set_face_num) && face_num < num_faces);
bail:
+#ifdef HAVE_FT_DONE_MM_VAR
+ FT_Done_MM_Var (ftLibrary, mm_var);
+#else
free (mm_var);
+#endif
FcLangSetDestroy (ls);
FcCharSetDestroy (cs);
if (face)