diff --git a/compositor/weston-screenshooter.c b/compositor/weston-screenshooter.c
index 9999909..f874c3e 100644
--- a/compositor/weston-screenshooter.c
+++ b/compositor/weston-screenshooter.c
@@ -66,7 +66,7 @@
 		    struct wl_resource *buffer_resource)
 {
 	struct weston_output *output =
-		wl_resource_get_user_data(output_resource);
+		weston_output_from_resource(output_resource);
 	struct weston_buffer *buffer =
 		weston_buffer_from_resource(buffer_resource);
 
diff --git a/desktop-shell/input-panel.c b/desktop-shell/input-panel.c
index 40a4092..e6b1541 100644
--- a/desktop-shell/input-panel.c
+++ b/desktop-shell/input-panel.c
@@ -274,7 +274,7 @@
 	wl_list_insert(&shell->input_panel.surfaces,
 		       &input_panel_surface->link);
 
-	input_panel_surface->output = wl_resource_get_user_data(output_resource);
+	input_panel_surface->output = weston_output_from_resource(output_resource);
 	input_panel_surface->panel = 0;
 }
 
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index f1577c1..832a7b7 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2941,7 +2941,7 @@
 	surface->committed = background_committed;
 	surface->committed_private = shell;
 	weston_surface_set_label_func(surface, background_get_label);
-	surface->output = wl_resource_get_user_data(output_resource);
+	surface->output = weston_output_from_resource(output_resource);
 	view->output = surface->output;
 	weston_desktop_shell_send_configure(resource, 0,
 					    surface_resource,
@@ -3026,7 +3026,7 @@
 	surface->committed = panel_committed;
 	surface->committed_private = shell;
 	weston_surface_set_label_func(surface, panel_get_label);
-	surface->output = wl_resource_get_user_data(output_resource);
+	surface->output = weston_output_from_resource(output_resource);
 	view->output = surface->output;
 	weston_desktop_shell_send_configure(resource, 0,
 					    surface_resource,
diff --git a/fullscreen-shell/fullscreen-shell.c b/fullscreen-shell/fullscreen-shell.c
index 7368cb4..6f4565a 100644
--- a/fullscreen-shell/fullscreen-shell.c
+++ b/fullscreen-shell/fullscreen-shell.c
@@ -769,7 +769,7 @@
 	}
 
 	if (output_res) {
-		output = wl_resource_get_user_data(output_res);
+		output = weston_output_from_resource(output_res);
 		fsout = fs_output_for_output(output);
 		fs_output_set_surface(fsout, surface, method, 0, 0);
 	} else {
@@ -813,7 +813,7 @@
 	struct weston_seat *seat;
 	struct fs_output *fsout;
 
-	output = wl_resource_get_user_data(output_res);
+	output = weston_output_from_resource(output_res);
 	fsout = fs_output_for_output(output);
 
 	if (surface_res == NULL) {
diff --git a/ivi-shell/input-panel-ivi.c b/ivi-shell/input-panel-ivi.c
index 57d1cb2..0008a52 100644
--- a/ivi-shell/input-panel-ivi.c
+++ b/ivi-shell/input-panel-ivi.c
@@ -275,7 +275,7 @@
 	wl_list_insert(&shell->input_panel.surfaces,
 		       &input_panel_surface->link);
 
-	input_panel_surface->output = wl_resource_get_user_data(output_resource);
+	input_panel_surface->output = weston_output_from_resource(output_resource);
 	input_panel_surface->panel = 0;
 }
 
diff --git a/libweston-desktop/wl-shell.c b/libweston-desktop/wl-shell.c
index 399139c..66553f4 100644
--- a/libweston-desktop/wl-shell.c
+++ b/libweston-desktop/wl-shell.c
@@ -302,7 +302,7 @@
 	struct weston_output *output = NULL;
 
 	if (output_resource != NULL)
-		output = wl_resource_get_user_data(output_resource);
+		output = weston_output_from_resource(output_resource);
 
 	weston_desktop_wl_shell_change_state(surface, FULLSCREEN, NULL, 0, 0);
 	weston_desktop_api_fullscreen_requested(surface->desktop, dsurface,
diff --git a/libweston-desktop/xdg-shell-v5.c b/libweston-desktop/xdg-shell-v5.c
index c91c259..d7c49b1 100644
--- a/libweston-desktop/xdg-shell-v5.c
+++ b/libweston-desktop/xdg-shell-v5.c
@@ -553,7 +553,7 @@
 	struct weston_output *output = NULL;
 
 	if (output_resource != NULL)
-		output = wl_resource_get_user_data(output_resource);
+		output = weston_output_from_resource(output_resource);
 
 	weston_desktop_xdg_surface_ensure_added(surface);
 	weston_desktop_api_fullscreen_requested(surface->desktop, dsurface,
diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c
index de5d3e0..dda0bf9 100644
--- a/libweston-desktop/xdg-shell-v6.c
+++ b/libweston-desktop/xdg-shell-v6.c
@@ -507,7 +507,7 @@
 	struct weston_output *output = NULL;
 
 	if (output_resource != NULL)
-		output = wl_resource_get_user_data(output_resource);
+		output = weston_output_from_resource(output_resource);
 
 	weston_desktop_xdg_toplevel_ensure_added(toplevel);
 	weston_desktop_api_fullscreen_requested(toplevel->base.desktop, dsurface,
diff --git a/libweston/compositor.c b/libweston/compositor.c
index 296b02e..813b663 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -4323,6 +4323,22 @@
 		wl_output_send_done(resource);
 }
 
+/** Get the backing object of wl_output
+ *
+ * \param resource A wl_output protocol object.
+ * \return The backing object (user data) of a wl_resource representing a
+ * wl_output protocol object.
+ */
+WL_EXPORT struct weston_output *
+weston_output_from_resource(struct wl_resource *resource)
+{
+	assert(wl_resource_instance_of(resource, &wl_output_interface,
+				       &output_interface));
+
+	return wl_resource_get_user_data(resource);
+}
+
+
 /* Move other outputs when one is resized so the space remains contiguous. */
 static void
 weston_compositor_reflow_outputs(struct weston_compositor *compositor,
diff --git a/libweston/compositor.h b/libweston/compositor.h
index 442d046..769203a 100644
--- a/libweston/compositor.h
+++ b/libweston/compositor.h
@@ -1941,6 +1941,9 @@
 void
 weston_pending_output_coldplug(struct weston_compositor *compositor);
 
+struct weston_output *
+weston_output_from_resource(struct wl_resource *resource);
+
 #ifdef  __cplusplus
 }
 #endif
diff --git a/tests/weston-test.c b/tests/weston-test.c
index 0123e99..189fcc1 100644
--- a/tests/weston-test.c
+++ b/tests/weston-test.c
@@ -473,7 +473,7 @@
 		   struct wl_resource *buffer_resource)
 {
 	struct weston_output *output =
-		wl_resource_get_user_data(output_resource);
+		weston_output_from_resource(output_resource);
 	struct weston_buffer *buffer =
 		weston_buffer_from_resource(buffer_resource);
 
