diff --git a/achievements.module b/achievements.module
index b9344b5..bb7fabe 100644
--- a/achievements.module
+++ b/achievements.module
@@ -49,6 +49,8 @@ function achievements_menu() {
     'page callback'     => 'achievements_user_page',
     'page arguments'    => array(1),
     'title'             => 'Achievements',
+    'title callback'    => 'achievements_user_page_title',
+    'title arguments'   => array(1),
     'type'              => MENU_LOCAL_TASK,
   );
   $items['admin/config/people/achievements'] = array(
diff --git a/achievements.pages.inc b/achievements.pages.inc
index de0a80d..bb59ba0 100644
--- a/achievements.pages.inc
+++ b/achievements.pages.inc
@@ -271,7 +271,6 @@ function achievements_leaderboard_for($achievement) {
  *   The user object this request applies against.
  */
 function achievements_user_page($account) {
-  drupal_set_title(t('Achievements for @name', array('@name' => $account->name)));
   $unlocks = achievements_unlocked_already(NULL, $account->uid);
   $achiever = array_pop(achievements_totals_user(0, $account->uid));
 
@@ -399,3 +398,13 @@ function theme_achievement_group_wrapper($variables) {
   $group_id = 'achievement-group-' . $variables['element']['#group_id'];
   return '<div id="' . $group_id . '" class="achievement-group">' . $variables['element']['#children'] . '</div>';
 }
+
+/**
+ * Page title callback for the user achievements page.
+ *
+ * @param object $account
+ *   A Drupal user object.
+ */
+function achievements_user_page_title($account) {
+  return t('Achievements for @name', array('@name' => format_username($account)));
+}
