diff --git quotes.module quotes.module
index 005c818..4d31351 100644
--- quotes.module
+++ quotes.module
@@ -97,10 +97,10 @@ function _quotes_myquotes_access() {
   return $user->uid && variable_get('quotes_show_myquotes', TRUE);
 }
 
-function _quotes_recentquotes_access() {
+function _quotes_recentquotes_access($account) {
   global $user;
   // This path is only allowed for authenticated users looking at their own posts.
-  return $user->uid && variable_get('quotes_user_recent', FALSE);
+  return $user->uid && ($user->uid == $account->uid) && variable_get('quotes_user_recent', FALSE);
 }
 
 /**
@@ -407,7 +407,7 @@ function quotes_load($nodes) {
   foreach ($nodes as $node) {
     //$obj = db_fetch_object(db_query("SELECT a.aid AS quotes_aid, a.name AS quotes_author, a.bio AS quotes_bio, q.citation AS quotes_citation, q.promote AS quotes_promote FROM {quotes} q JOIN {quotes_authors} a USING (aid) WHERE q.vid = %d", $node->vid));
     $obj = db_select('quotes' , 'q');
-    $alias = $obj->join('quotes_authors' , 'a', 'q.aid = a.aid');
+    $alias = $obj->leftjoin('quotes_authors' , 'a', 'q.aid = a.aid');
     $f_aa = $obj->addField('a' , 'aid' , 'quotes_aid');
     $f_an = $obj->addField('a' , 'name' , 'quotes_author');
     $f_ab = $obj->addField('a' , 'bio' , 'quotes_bio');
@@ -680,8 +680,9 @@ function quotes_view($node, $view_mode) {
     $menu_info = menu_get_item('quotes');
     $menu_title = $menu_info['title'];
     $breadcrumb[] = l($menu_title, 'quotes');
-    $username = $user->uid ? $user->name : variable_get('anonymous', t('Anonymous'));
-    $breadcrumb[] = l(t("!name's !menu", array('!menu' => $menu_title, '!name' => $username)), "quotes/$node->uid");
+    $account = $node->uid ? user_load($node->uid) : drupal_anonymous_user();
+    $username = strip_tags(theme('username',array('account' => $account)));
+    $breadcrumb[] = l(t("!menu from !name", array('!menu' => $menu_title, '!name' => $username)), "quotes/$node->uid");
     drupal_set_breadcrumb($breadcrumb);
   }
 
@@ -728,14 +729,14 @@ function quotes_node_view($node, $view_mode) {
           '#markup' => check_markup($node->quotes_bio, $format, $node->language, FALSE),
         );
       }
-      // Add citation if present.
-      if (!empty($node->quotes_citation)) {
-        $node->content['quotes_citation'] = array(
-          '#prefix' => '<div class="quotes-citation"><cite>',
-          '#suffix' => '</cite></div>',
-          '#markup' => check_markup($node->quotes_citation, $format, $node->language, FALSE),
-        );
-      }
+    }
+    // Add citation if present.
+    if (!empty($node->quotes_citation)) {
+      $node->content['quotes_citation'] = array(
+        '#prefix' => '<div class="quotes-citation"><cite>',
+        '#suffix' => '</cite></div>',
+        '#markup' => check_markup($node->quotes_citation, $format, $node->language, FALSE),
+      );
     }
   }
   if ($view_mode != 'rss') {
@@ -1570,11 +1571,16 @@ function theme_quotes_quote($variables) {
  */
 function theme_quotes_page($variables) {
   global $user;
-  $uid     = $variables['uid'];
   $account = $variables['account'];
-  //TODO - $uid or $account, $uid is current user or changes to $user what they want
-  //     - sort $user quotes by 'quotes author' if "by author" is selected.
-
+  if (is_numeric($account)) {
+    $account = user_load($account);
+  }
+  elseif (isset($account->uid)) {
+    $account = user_load($account->uid);
+  }
+  else {
+    $account = drupal_anonymous_user();
+  }
   $build   = array();
 
   $query = db_select('node', 'n')->extend('PagerDefault');
@@ -1584,14 +1590,13 @@ function theme_quotes_page($variables) {
     -> condition('n.status', '1')
     -> condition('n.type', 'quotes');
 
-  if ($uid) {
-    $account = user_load($uid);
-    $name = isset($account->realname) ? $account->realname : $account->name;
+  if ($account) {
+    $name = strip_tags(theme('username',array('account' => $account)));
     $menu_info = menu_get_item('quotes');
     $menu_title = $menu_info['title'];
-    drupal_set_title(t("!name's !menu", array('!menu' => $menu_title, '!name' => $name)), PASS_THROUGH);
+    drupal_set_title(t("!menu from !name", array('!menu' => $menu_title, '!name' => $name)));
 
-    $url = url("quotes/$account->uid/feed");
+    $url = url('quotes/' . $account->uid . '/feed');
     //$result = pager_query(db_rewrite_sql("SELECT n.nid FROM {node} n INNER JOIN {node_revisions} nr USING (vid) WHERE n.status=1 AND n.type='quotes' AND n.uid=%d ORDER BY n.sticky DESC, n.created DESC"), $limit, 0, NULL, $user->uid);
     $query -> condition('n.uid', $account->uid);
   }
@@ -1627,7 +1632,7 @@ function theme_quotes_page($variables) {
       drupal_set_message(t('You have not created any quotes.'));
     }
     else {
-      drupal_set_message(t('!author has not created any quotes entries.', array('!author' => theme('username', array('account' => $account))), PASS_THROUGH));
+      drupal_set_message(t('!author has not created any quotes entries.', array('!author' => theme('username', array('account' => $account)))));
     }
   }
 
@@ -1784,13 +1789,13 @@ function quotes_block_where_sql($filters = array(), $query) {
  */
 function quotes_myquotes() {
   global $user;
-  return theme('quotes_page', array('uid' => $user->uid));
+  return theme('quotes_page', array('account' => $user));
 }
 
 /**
  * Menu callback that calls theme_quotes_page().
  *
- * @param $uid
+ * @param $account
  *   The user object (from menu) of the user's quotes to be displayed.
  * @param $arg2
  *   If 'feed', a feed is requested.
@@ -1798,10 +1803,10 @@ function quotes_myquotes() {
  * @return
  *   An HTML-formatted list of quotes.
  */
-function quotes_page($user = NULL, $arg2 = NULL) {
+function quotes_page($account = NULL, $arg2 = NULL) {
   global $user;
   if ($arg2 == 'feed') {
-    _quotes_feed_user($user->uid);
+    _quotes_feed_user($account->uid);
   }
   else {
     // Breadcrumb navigation. The default is wrong because of a core menu bug.
@@ -1816,7 +1821,7 @@ function quotes_page($user = NULL, $arg2 = NULL) {
       return quotes_author($arg2);
     }
     else {
-      return theme('quotes_page', array('uid' => $user->uid));
+      return theme('quotes_page', array('account' => $account));
     }
   }
 }
