diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index 06c4f51a07ceffe92920ed22bf0023ee40d6e383..964334306e073efa9c2269b241b023bbf2724c16 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -534,23 +534,32 @@ App.UI.SlaveList.SlaveInteract.penthouseInteract = function(slave) {
  * @returns {HTMLElement}
  */
 App.UI.SlaveList.sortingLinks = function(passage) {
-	const outerDiv = document.createElement("div");
+	const div = document.createElement("div");
 	const textify = string => capFirstChar(string.replace(/([A-Z])/g, " $1"));
 
-	let innerDiv = App.UI.DOM.makeElement("div", "Sort by: ", "indent");
-	let order = ["devotion", "trust", "name", "assignment", "seniority", "actualAge", "visualAge", "physicalAge", "weeklyIncome", "health", "weight", "muscles", "intelligence", "sexDrive", "pregnancy"]
-		.map(so => V.sortSlavesBy !== so ?
-			App.UI.DOM.passageLink(textify(so), passage, () => { V.sortSlavesBy = so; }) : textify(so));
-	innerDiv.append(App.UI.DOM.generateLinksStrip(order));
-	outerDiv.append(innerDiv);
+	let span = App.UI.DOM.makeElement("span", "Sort by: ");
+	let order = ["devotion", "trust", "name", "assignment", "seniority", "actualAge", "visualAge", "physicalAge", "weeklyIncome", "health", "weight", "muscles", "intelligence", "sexDrive", "pregnancy"];
+	const select = App.UI.DOM.appendNewElement("select", span);
+	for (const so of order) {
+		const choice = App.UI.DOM.appendNewElement("option", select, textify(so));
+		choice.value = so;
+		if (V.sortSlavesBy === so) {
+			choice.selected = true;
+		}
+	}
+	select.onchange = () => {
+		V.sortSlavesBy = select.options[select.selectedIndex].value;
+		App.UI.reload();
+	};
+	div.append(span);
 
-	innerDiv = App.UI.DOM.makeElement("div", "Sort direction: ", "indent");
-	order = ["descending", "ascending"].map(so => V.sortSlavesOrder !== so ?
-		App.UI.DOM.passageLink(textify(so), passage, () => { V.sortSlavesOrder = so; }) : textify(so));
-	innerDiv.append(App.UI.DOM.generateLinksStrip(order));
-	outerDiv.append(innerDiv);
+	span = App.UI.DOM.makeElement("span", " Sort direction: ");
+	order = ["descending", "ascending"];
+	span.append(App.UI.DOM.generateLinksStrip(order.map(so => V.sortSlavesOrder !== so ?
+		App.UI.DOM.passageLink(textify(so), passage, () => { V.sortSlavesOrder = so; }) : textify(so))));
+	div.append(span);
 
-	return outerDiv;
+	return div;
 };
 
 /**