diff --git a/session_limit.module b/session_limit.module
index 79b5dc6..9b2421f 100644
--- a/session_limit.module
+++ b/session_limit.module
@@ -397,8 +397,15 @@ function session_limit_user_max_sessions($account = array()) {
   $limits['user'] = session_limit_user_max_sessions_byuser($account);
   $limits['role'] = session_limit_user_max_sessions_byrole($account);
 
-  rsort($limits);
-  return check_plain($limits[0]);
+  $limit = $limits['default'];
+  if ($limits['user'] > 0) {
+    $limit = $limits['user'];
+  }
+  elseif ($limits['role'] > 0) {
+    $limit = $limits['role'];
+  }
+
+  return check_plain($limit);
 }
 
 function session_limit_user_max_sessions_byuser($account) {
