diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp
index 88e6fa519..40121de32 100644
--- a/src/helpers/MiscFunctions.cpp
+++ b/src/helpers/MiscFunctions.cpp
@@ -288,6 +288,22 @@ int getWorkspaceIDFromString(const std::string& in, std::string& outName) {
             if (!PWORKSPACE || (g_pCompositor->getWindowsOnWorkspace(id) == 0))
                 return id;
         }
+    } else if (in.find("prev") == 0) {
+        if (!g_pCompositor->m_pLastMonitor)
+            return INT_MAX;
+
+        const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(g_pCompositor->m_pLastMonitor->activeWorkspace);
+
+        if (!PWORKSPACE)
+            return INT_MAX;
+
+        const auto PLASTWORKSPACE = g_pCompositor->getWorkspaceByID(PWORKSPACE->m_iPrevWorkspaceID);
+
+        if (!PLASTWORKSPACE)
+            return INT_MAX;
+
+        outName = PLASTWORKSPACE->m_szName;
+        return PLASTWORKSPACE->m_iID;
     } else {
         if ((in[0] == 'm' || in[0] == 'e') && (in[1] == '-' || in[1] == '+') && isNumber(in.substr(2))) {
             bool onAllMonitors = in[0] == 'e';