diff --git a/modules/user/user.module b/modules/user/user.module
index 23ffa0f..89c7289 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -150,6 +150,15 @@ function user_load($user_info = array()) {
   elseif (!is_array($user_info)) {
     return FALSE;
   }
+  
+  //Check to see if it's cached
+  if(module_exists('drupal_6_entity_cache')){
+  	if($user_info['uid']){
+  		if($user_cache = drupal_6_entity_cache_user_load($user_info['uid'])){
+  			return $user_cache;
+  		}
+  	}
+  }
 
   foreach ($user_info as $key => $value) {
     if ($key == 'uid' || $key == 'status') {
@@ -186,7 +195,14 @@ function user_load($user_info = array()) {
   else {
     $user = FALSE;
   }
-
+  
+  //Clear the cache
+  if (module_exists('drupal_6_entity_cache')) {
+    if($user->uid){
+  		cache_clear_all($user->uid, 'cache_user');
+    }
+  }
+  
   return $user;
 }
 
@@ -371,7 +387,12 @@ function user_save($account, $array = array(), $category = 'account') {
   if (sizeof($authmaps) > 0) {
     user_set_authmaps($user, $authmaps);
   }
-
+	
+  //Clear the cache
+  if (module_exists('drupal_6_entity_cache')) {
+    cache_clear_all($user->uid, 'cache_user');
+  }
+	
   return $user;
 }
 
@@ -501,13 +522,12 @@ function user_access($string, $account = NULL, $reset = FALSE) {
 
   if (!isset($account)) {
     $account = $user;
-  }
-
+  } 
   // User #1 has all privileges:
   if ($account->uid == 1) {
     return TRUE;
   }
-
+   //print_r($user);
   // To reduce the number of SQL queries, we cache the user's permissions
   // in a static variable.
   if (!isset($perm[$account->uid])) {
@@ -586,8 +606,8 @@ function user_search($op = 'search', $keys = NULL, $skip_access_check = FALSE) {
         $keys = preg_replace('!\*+!', '%', $keys);
         if (user_access('administer users')) {
           // Administrators can also search in the otherwise private email field.
-          $result = pager_query("SELECT name, uid, mail FROM {users} WHERE name LIKE '%%%s%%' OR mail LIKE '%%%s%%'", 15, 0, NULL, $keys, $keys);
-          while ($account = db_fetch_object($result)) {
+          $result = pager_query("SELECT name, uid, mail FROM {users} WHERE name LIKE '%%%s%%' OR mail LIKE '%%%s%%'", 15, 0, NULL, $keys, $keys);          
+		  while ($account = db_fetch_object($result)) {
             $find[] = array('title' => $account->name .' ('. $account->mail .')', 'link' => url('user/'. $account->uid, array('absolute' => TRUE)));
           }
         }
@@ -1644,6 +1664,10 @@ function user_delete($edit, $uid) {
   $variables = array('%name' => $account->name, '%email' => '<'. $account->mail .'>');
   watchdog('user', 'Deleted user: %name %email.', $variables, WATCHDOG_NOTICE);
   user_module_invoke('delete', $edit, $account);
+  //Clear the cache
+  if (module_exists('drupal_6_entity_cache')) {
+  	cache_clear_all($user->uid, 'cache_user');
+  }
 }
 
 /**
