diff --git a/page_manager/plugins/tasks/user_view.inc b/page_manager/plugins/tasks/user_view.inc
index dfb4081..1c42123 100644
--- a/page_manager/plugins/tasks/user_view.inc
+++ b/page_manager/plugins/tasks/user_view.inc
@@ -69,6 +69,10 @@ function page_manager_user_view_menu_alter(&$items, $task) {
  * user view, which is user_page_view().
  */
 function page_manager_user_view_page($account) {
+  // Prep the user to be displayed so all of the regular hooks are triggered.
+  // Also save the output for later, in case it is needed.
+  $default_output = user_view($account);
+
   // Load my task plugin:
   $task = page_manager_get_task('user_view');
 
@@ -77,32 +81,22 @@ function page_manager_user_view_page($account) {
   ctools_include('context-task-handler');
   $contexts = ctools_context_handler_get_task_contexts($task, '', array($account));
 
-  // Build content. @todo -- this may not be right.
-  user_build_content($account);
-
+  // Build the full output using the configured CTools plugin.
   $output = ctools_context_handler_render($task, '', $contexts, array($account->uid));
   if ($output != FALSE) {
     return $output;
   }
 
-  $function = 'user_view';
+  // Try loading an override plugin.
   foreach (module_implements('page_manager_override') as $module) {
     $call = $module . '_page_manager_override';
     if (($rc = $call('user_view')) && function_exists($rc)) {
-      $function = $rc;
-      break;
+      return $rc($node);
     }
   }
 
-  // Otherwise, fall back.
-  if ($function == 'user_view') {
-    module_load_include('inc', 'user', 'user.pages');
-  }
-  //fire off "view" op so that triggers still work
-  // @todo -- this doesn't work anymore, and the alternatives seem bad.
-  // will have to figure out how to fix this.
-//  user_module_invoke('view', $array = array(), $account);
-  return $function($account);
+  // Otherwise, fall back to the default output generated by user_view().
+  return $default_output;
 }
 
 /**
