diff --git a/package/freetype/freetype.mk b/package/freetype/freetype.mk
index cc5fbf858c..1e378d3194 100644
--- a/package/freetype/freetype.mk
+++ b/package/freetype/freetype.mk
@@ -37,6 +37,7 @@ ifeq ($(BR2_PACKAGE_LIBPNG),y)
 FREETYPE_DEPENDENCIES += libpng
 FREETYPE_CONF_OPT += LIBPNG_CFLAGS="`$(STAGING_DIR)/usr/bin/libpng-config --cflags`" \
 	LIBPNG_LDFLAGS="`$(STAGING_DIR)/usr/bin/libpng-config --ldflags`"
+FREETYPE_LIBPNG_LIBS = "`$(STAGING_DIR)/usr/bin/libpng-config --libs`"
 else
 FREETYPE_CONF_OPT += --without-png
 endif
@@ -49,5 +50,14 @@ define FREETYPE_FIX_CONFIG_FILE
 endef
 FREETYPE_POST_INSTALL_STAGING_HOOKS += FREETYPE_FIX_CONFIG_FILE
 
+# libpng isn't included in freetype-config & freetype2.pc :-/
+define FREETYPE_FIX_CONFIG_FILE_LIBS
+	$(SED) "s,^Libs.private:,& $(FREETYPE_LIBPNG_LIBS)," \
+		$(STAGING_DIR)/usr/lib/pkgconfig/freetype2.pc
+	$(SED) "s,-lfreetype,& $(FREETYPE_LIBPNG_LIBS)," \
+		$(STAGING_DIR)/usr/bin/freetype-config
+endef
+FREETYPE_POST_INSTALL_STAGING_HOOKS += FREETYPE_FIX_CONFIG_FILE_LIBS
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))