diff --git a/classes/feeds.php b/classes/feeds.php
index fcbb2e7f1bd01e695698ee6d2abb41545fa6c85e..a46d008a5dcfd8b0a3abc2e33dccfb439a2cc3fa 100755
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -61,51 +61,42 @@ class Feeds extends Handler_Protected {
 		$reply .= "<span class=\"right\">";
 		$reply .= "<span id='selected_prompt'></span>";
 		$reply .= "&nbsp;";
-		$reply .= "<select dojoType=\"fox.form.Select\"
-			onchange=\"Headlines.onActionChanged(this)\">";
 
-		$reply .= "<option value=\"0\" disabled='1'>".__('Select...')."</option>";
-
-		$reply .= "<option value=\"Headlines.select('all')\">".__('All')."</option>";
-		$reply .= "<option value=\"Headlines.select('unread')\">".__('Unread')."</option>";
-		$reply .= "<option value=\"Headlines.select('invert')\">".__('Invert')."</option>";
-		$reply .= "<option value=\"Headlines.select('none')\">".__('None')."</option>";
-
-		$reply .= "<option value=\"0\" disabled=\"1\">".__('Selection toggle:')."</option>";
-
-		$reply .= "<option value=\"Headlines.selectionToggleUnread()\">".__('Unread')."</option>
-			<option value=\"Headlines.selectionToggleMarked()\">".__('Starred')."</option>
-			<option value=\"Headlines.selectionTogglePublished()\">".__('Published')."</option>";
-
-		$reply .= "<option value=\"0\" disabled=\"1\">".__('Selection:')."</option>";
-
-		$reply .= "<option value=\"Headlines.catchupSelection()\">".__('Mark as read')."</option>";
-		$reply .= "<option value=\"Article.selectionSetScore()\">".__('Set score')."</option>";
-
-		if ($feed_id == 0 && !$is_cat) {
-			$reply .= "<option value=\"Headlines.deleteSelection()\">".__('Delete')."</option>";
-		}
+		$reply .= "<div dojoType='fox.form.DropDownButton' title='".__('Select articles')."'>
+			<span>".__("Select...")."</span>
+			<div dojoType='dijit.Menu' style='display: none;'>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.select(\"all\")'>".__('All')."</div>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.select(\"unread\")'>".__('Unread')."</div>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.select(\"invert\")'>".__('Invert')."</div>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.select(\"none\")'>".__('None')."</div>
+			<div dojoType='dijit.MenuSeparator'></div>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.selectionToggleUnread()'>".__('Toggle unread')."</div>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.selectionToggleMarked()'>".__('Toggle starred')."</div>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.selectionTogglePublished()'>".__('Toggle published')."</div>
+			<div dojoType='dijit.MenuSeparator'></div>
+			<div dojoType='dijit.MenuItem' onclick='Headlines.catchupSelection()'>".__('Mark as read')."</div>
+			<div dojoType='dijit.MenuItem' onclick='Article.selectionSetScore()'>".__('Set score')."</div>";
 
 		if (PluginHost::getInstance()->get_plugin("mail")) {
-			$reply .= "<option value=\"Plugins.Mail.send()\">".__('Forward by email').
-				"</option>";
+			$reply .= "<div dojoType='dijit.MenuItem' value='Plugins.Mail.send()'>".__('Forward by email')."</div>";
 		}
 
 		if (PluginHost::getInstance()->get_plugin("mailto")) {
-			$reply .= "<option value=\"Plugins.Mailto.send()\">".__('Forward by email').
-				"</option>";
+			$reply .= "<div dojoType='dijit.MenuItem' value='Plugins.Mailto.send()'>".__('Forward by email')."</div>";
 		}
 
-		//$reply .= "<option value=\"0\" disabled=\"1\">".__('Feed:')."</option>";
-
-		//$reply .= "<option value=\"catchupPage()\">".__('Mark as read')."</option>";
+		foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM) as $p) {
+			$reply .= $p->hook_headline_toolbar_select_menu_item($feed_id, $is_cat);
+	  	}
 
-		/*$reply .= "<option value=\"App.displayDlg('".__("Show as feed")."','generatedFeed', '$feed_id:$is_cat:$rss_link')\">".
-            __('Show as feed')."</option>";*/
+		if ($feed_id == 0 && !$is_cat) {
+			$reply .= "<div dojoType='dijit.MenuSeparator'></div>
+				<div dojoType='dijit.MenuItem' class='text-error' onclick='Headlines.deleteSelection()'>".__('Delete permanently')."</div>";
+		}
 
-		$reply .= "</select>";
+		$reply .= "</div>"; /* menu */
 
-		//$reply .= "</h2";
+		$reply .= "</div>"; /* dropdown */
 
 		foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_HEADLINE_TOOLBAR_BUTTON) as $p) {
 			 $reply .= $p->hook_headline_toolbar_button($feed_id, $is_cat);
diff --git a/classes/pluginhost.php b/classes/pluginhost.php
index f84b072517826e3725e94538bf0abf55f4460148..08871af51de0dfa50c97438198bff2f30ee8b8c3 100755
--- a/classes/pluginhost.php
+++ b/classes/pluginhost.php
@@ -69,6 +69,7 @@ class PluginHost {
 	const HOOK_ENCLOSURE_IMPORTED = 45;
 	const HOOK_HEADLINES_CUSTOM_SORT_MAP = 46;
 	const HOOK_HEADLINES_CUSTOM_SORT_OVERRIDE = 47;
+	const HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM = 48;
 
 	const KIND_ALL = 1;
 	const KIND_SYSTEM = 2;
diff --git a/js/Headlines.js b/js/Headlines.js
index 78ad6d9c4955764eafa34792d2cfe67474a3e60f..03e3f506ae55011b3b562720b63c46f3e66b86ce 100755
--- a/js/Headlines.js
+++ b/js/Headlines.js
@@ -1207,11 +1207,6 @@ const Headlines = {
 			});
 		}
 	},
-	onActionChanged: function (elem) {
-		// eslint-disable-next-line no-eval
-		eval(elem.value);
-		elem.attr('value', 'false');
-	},
 	scrollToArticleId: function (id) {
 		const container = $("headlines-frame");
 		const row = $("RROW-" + id);