diff --git a/uc_wishlist.module b/uc_wishlist.module
index 6dbc5ce..d1c5b84 100644
--- a/uc_wishlist.module
+++ b/uc_wishlist.module
@@ -80,6 +80,17 @@ function uc_wishlist_menu() {
     'file' => 'uc_wishlist.pages.inc',
   );
 
+  $items['user/%user/wishlist'] = array(
+    'title' => 'Wish list',
+    'description' => 'View or modify the contents of your wish list.',
+    'page callback' => 'uc_wishlist_display',
+    'page arguments' => array(1, 'user'),
+    'access callback' => 'user_view_access',
+    'access arguments' => array(1),
+    'file' => 'uc_wishlist.pages.inc',
+    'type' => MENU_LOCAL_TASK,
+  );
+
   return $items;
 }
 
@@ -442,11 +453,14 @@ function uc_wishlist_get_uid() {
   return $uid;
 }
 
-// Return the wish list ID of the current user.
-function uc_wishlist_get_wid() {
+// Return the wish list ID of the specified user (defaults to current user)
+function uc_wishlist_get_wid($uid = NULL) {
   // Find the wish list matching the authenticated or anonymous user ID.
   // TODO: Handle multiple wishlists?
-  return db_result(db_query("SELECT wid FROM {uc_wishlists} WHERE uid = '%s'", uc_wishlist_get_uid()));
+  if (empty($uid)) {
+    $uid = uc_wishlist_get_uid();
+  }
+  return db_result(db_query("SELECT wid FROM {uc_wishlists} WHERE uid = '%s'", $uid));
 }
 
 /**
diff --git a/uc_wishlist.pages.inc b/uc_wishlist.pages.inc
index 2a28880..b831473 100644
--- a/uc_wishlist.pages.inc
+++ b/uc_wishlist.pages.inc
@@ -15,7 +15,7 @@
  * @return
  *   HTML output for the wish list display and form.
  */
-function uc_wishlist_display($wid = NULL) {
+function uc_wishlist_display($wid = NULL, $mode = 'wid') {
   global $user;
   $output = '';
 
@@ -23,12 +23,17 @@ function uc_wishlist_display($wid = NULL) {
   // This affects how many parts of the page are rendered.
   $own = FALSE;
 
-  // Default to the current user's wish list if no wishlist ID is specified.
-  if (empty($wid)) {
+  if ($mode == 'user') {
+    // $wid is actually a user account
+    $wid = uc_wishlist_get_wid($wid->uid);
+  }
+  else if (empty($wid)) {
+    // Default to the current user's wish list if no wishlist ID is specified.
     $wid = uc_wishlist_get_wid();
     $own = TRUE;
   }
-  elseif ($wid == uc_wishlist_get_wid()) {
+
+  if (!$own && $wid == uc_wishlist_get_wid()) {
     $own = TRUE;
   }
 
