diff --git a/classes/article.php b/classes/article.php
index a79241bf6d002a590f1e235009136e6e6b8ba8fd..6729443a1a2fa5e195d9f99998b0a05e8f8e1127 100755
--- a/classes/article.php
+++ b/classes/article.php
@@ -731,9 +731,11 @@ class Article extends Handler_Protected {
 		define('ARTICLE_KIND_VIDEO', 2);
 		define('ARTICLE_KIND_YOUTUBE', 3);
 
-		foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_ARTICLE_IMAGE) as $p) {
-			list ($article_image, $article_stream, $content) = $p->hook_article_image($enclosures, $content, $site_url);
-		}
+		PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_ARTICLE_IMAGE,
+			function ($result) use (&$article_image, &$article_stream, &$content) {
+				list ($article_image, $article_stream, $content) = $result;
+			},
+			$enclosures, $content, $site_url);
 
 		if (!$article_image && !$article_stream) {
 			$tmpdoc = new DOMDocument();
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index 108d95a8850240046f19f3abd0819a13cbe6e855..d94279706071a14016ea99205a14f85a49948f3b 100755
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -90,7 +90,7 @@ class PluginHost {
 		//
 	}
 
-	public static function getInstance() {
+	public static function getInstance(): PluginHost {
 		if (self::$instance == null)
 			self::$instance = new self();