--- C:\Users\Ramesh\AppData\Local\Temp\user.inc-revBASE.svn000.tmp.inc	2010-07-01 18:12:48.000000000 +-0100
+++ Q:\nbc\kola_rnair\src\sites\all\modules\patterns\components\user.inc	2010-07-01 18:13:27.000000000 +-0100
@@ -74,13 +74,13 @@
           if ($rid) {
             $data['id'] = $rid;
           }
         }
       }
       else if ($id == 'permissions') {
-        if ($data['role'] && !$data['rid']) {
+        if ($data['role'] && !isset($data['rid'])) {
           $data['rid'] = $data['role'];
         }
         unset($data['role']);
       }
     break;
 
@@ -114,13 +114,13 @@
           if (!array_key_exists($data['timezone'], $zones)) {
             return t('Invalid timezone: %zone. Use the following format: +0100 or -0930', array('%zone' => $data['timezone_original']));
           }
         }
         unset($data['timezone_original']);
       }
-      else if ($id == 'role') {
+      else if ($id == 'role' && isset($data['id'])) {
         if (DRUPAL_ANONYMOUS_RID == $data['id'] || DRUPAL_AUTHENTICATED_RID == $data['id']) {
           return t('The authenticated or anonymous roles cannot be updated or deleted.');
         }
         if (!empty($data['id']) && !db_result(db_query("SELECT COUNT(*) FROM {role} WHERE rid = %d", $data['id']))) {
           return t('Invalid role id: %rid.', array('%rid' => $data['id']));
         }
