diff --git a/sway/tree/root.c b/sway/tree/root.c
index d6f67bd7..6748e9c9 100644
--- a/sway/tree/root.c
+++ b/sway/tree/root.c
@@ -273,6 +273,12 @@ void root_for_each_container(void (*f)(struct sway_container *con, void *data),
 			container_for_each_child(container, f, data);
 		}
 	}
+
+	// Saved workspaces
+	for (int i = 0; i < root->saved_workspaces->length; ++i) {
+		struct sway_workspace *ws = root->saved_workspaces->items[i];
+		workspace_for_each_container(ws, f, data);
+	}
 }
 
 struct sway_output *root_find_output(
@@ -320,6 +326,15 @@ struct sway_container *root_find_container(
 			}
 		}
 	}
+
+	// Saved workspaces
+	for (int i = 0; i < root->saved_workspaces->length; ++i) {
+		struct sway_workspace *ws = root->saved_workspaces->items[i];
+		if ((result = workspace_find_container(ws, test, data))) {
+			return result;
+		}
+	}
+
 	return NULL;
 }