diff --git a/modules/location.author-pane.inc b/modules/location.author-pane.inc
index b2a9306..8760400 100644
--- a/modules/location.author-pane.inc
+++ b/modules/location.author-pane.inc
@@ -9,6 +9,8 @@
  * Implementation of hook_preprocess_author_pane().
  */
 function location_preprocess_author_pane(&$variables) {
+  global $user;
+
   // Check if this preprocess needs to be run given who's calling it.
   if (!author_pane_run_preprocess('location', $variables['caller'])) {
     return;
@@ -16,11 +18,13 @@ function location_preprocess_author_pane(&$variables) {
 
   $account_id = $variables['account']->uid;
   if ($account_id != 0) {
-    $account = $variables['account'];
-    if (function_exists('location_display') && variable_get('location_display_location', 1) && isset($account->locations) && count($account->locations)) {
-      $settings = variable_get('location_settings_user', array());
-      $location = location_display($settings, $account->locations);
-      $variables['location_user_location'] = $location['#value'];
+    if (user_access('view all user locations') || ($user->uid == $account_id && user_access('view own user location'))) {
+      $account = $variables['account'];
+      if (function_exists('location_display') && variable_get('location_display_location', 1) && isset($account->locations) && count($account->locations)) {
+        $settings = variable_get('location_settings_user', array());
+        $location = location_display($settings, $account->locations);
+        $variables['location_user_location'] = $location['#value'];
+      }
     }
   }
 }
