diff --git a/src/workbench.lua b/src/workbench.lua
index 500e311a229d3cae8a797cd85fd55c4d56dab092..e948c62500accfc6d3c3ef559cab098e651cb4bc 100644
--- a/src/workbench.lua
+++ b/src/workbench.lua
@@ -240,9 +240,10 @@ xdecor.register("workbench", {
 for _, d in pairs(workbench.defs) do
 for i=1, #nodes do
 	local node = nodes[i]
+	local mod_name, item_name = node:match("^(.-):(.*)")
 	local def = registered_nodes[node]
 
-	if d[3] then
+	if item_name and d[3] then
 		local groups = {}
 		local tiles
 		groups.not_in_creative_inventory = 1
@@ -263,8 +264,8 @@ for i=1, #nodes do
 			tiles = {def.tile_images[1]}
 		end
 
-		if not registered_nodes["stairs:slab_"..node:match(":(.*)")] then
-			stairs.register_stair_and_slab(node:match(":(.*)"), node,
+		if not registered_nodes["stairs:slab_"..item_name] then
+			stairs.register_stair_and_slab(item_name, node,
 				groups, tiles, def.description.." Stair",
 				def.description.." Slab", def.sounds)
 		end
@@ -282,6 +283,15 @@ for i=1, #nodes do
 			sunlight_propagates = true,
 			on_place = minetest.rotate_node
 		})
+	elseif item_name and mod_name then
+		minetest.register_alias_force(
+			('%s:%s_innerstair'):format(mod_name, item_name),
+			('stairs:stair_inner_%s'):format(item_name)
+		)
+		minetest.register_alias_force(
+			('%s:%s_outerstair'):format(mod_name, item_name),
+			('stairs:stair_outer_%s'):format(item_name)
+		)
 	end
 end
 end