diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 52e10bd717175d55cc3c8f1ad901553a0efcf8cf..0b517fbf29ed1cb1ed3b297ebd22a1c20e062140 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -373,8 +373,6 @@ bool QFontEngine::supportsScript(QChar::Script script) const
                 if (!ret && script_tag_2 != HB_OT_TAG_DEFAULT_SCRIPT)
                     ret = hb_ot_layout_table_find_script(face, HB_OT_TAG_GSUB, HB_OT_TAG_DEFAULT_SCRIPT, &script_index);
             }
-
-            hb_face_destroy(face);
         }
         return ret;
     }
diff --git a/src/gui/text/qharfbuzzng.cpp b/src/gui/text/qharfbuzzng.cpp
index eb7bca1974656c585d423fd7d84d3bd3294d421c..16c45e642b30608369f0e4db9bab5fb0115cd45c 100644
--- a/src/gui/text/qharfbuzzng.cpp
+++ b/src/gui/text/qharfbuzzng.cpp
@@ -632,7 +632,7 @@ hb_face_t *hb_qt_face_get_for_engine(QFontEngine *fe)
         fe->face_destroy_func = _hb_qt_face_release;
     }
 
-    return hb_face_reference((hb_face_t *)fe->face_);
+    return (hb_face_t *)fe->face_;
 }
 
 
@@ -645,8 +645,6 @@ _hb_qt_font_create(QFontEngine *fe)
 
     hb_font_t *font = hb_font_create(face);
 
-    hb_face_destroy(face); // ref-ed in hb_qt_face_get_for_engine()
-
     if (Q_UNLIKELY(hb_font_is_immutable(font))) {
         hb_font_destroy(font);
         return NULL;
@@ -684,7 +682,7 @@ hb_font_t *hb_qt_font_get_for_engine(QFontEngine *fe)
         fe->font_destroy_func = _hb_qt_font_release;
     }
 
-    return hb_font_reference((hb_font_t *)fe->font_);
+    return (hb_font_t *)fe->font_;
 }
 
 QT_END_NAMESPACE
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 9fe1fd26e9f703d4491f374b11048b69a2a2fcc2..d156124b984d95e2d2367f6200451a6fae143892 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -1168,8 +1168,6 @@ int QTextEngine::shapeTextWithHarfbuzzNG(const QScriptItem &si, const ushort *st
             };
             const int num_features = 1;
             shapedOk = hb_shape_full(hb_font, buffer, features, num_features, 0);
-
-            hb_font_destroy(hb_font);
         }
         if (!shapedOk) {
             hb_buffer_destroy(buffer);