Only in user_import_orig/: sample.txt
diff -urp user_import_orig/supported/nodeprofile.inc user_import/supported/nodeprofile.inc
--- user_import_orig/supported/nodeprofile.inc	2008-05-15 15:16:32.000000000 +0200
+++ user_import/supported/nodeprofile.inc	2008-06-15 14:36:34.000000000 +0200
@@ -1,4 +1,10 @@
 <?php
+// $Id: nodeprofiles.inc,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
+
+/**
+ * @file
+ * Import node_import and cck module properties.
+ */
 
 // Functionality depends on node_import and CCK.
 if (module_exists('node_import') && module_exists('content')) {
@@ -43,16 +49,16 @@ if (module_exists('node_import') && modu
    * Implementation of hook_user_import_after_save().
    */
   function nodeprofile_user_import_after_save($settings, $account, $password, $fields) {
-    if (!is_array($fields['nodeprofile'])) return; 
+    if (!is_array($fields['nodeprofile'])) return;
 
     $nodeprofile_types = (array) nodeprofile_get_types();
 
     foreach (array_keys($nodeprofile_types) as $type) {
       $errors = array();
-      $node = new StdClass();
+      $node = new stdClass();
       $node->type = $type;
       $node->status = 1;
-      // Assign the mapped fields to the $node.    
+      // Assign the mapped fields to the $node.
       foreach ($fields['nodeprofile'] as $column_id => $column_data) {
         if (!empty($column_data)) {
           $node->$column_id = $column_data[0];
@@ -61,7 +67,7 @@ if (module_exists('node_import') && modu
 
       // Call the node import preparation.
       foreach (module_list() as $module_name) {
-        $function = $module_name . '_node_import_prepare';
+        $function = $module_name .'_node_import_prepare';
         if (function_exists($function)) {
           $errors = array_merge((array)$errors, (array)$function($node, $preview > 0));
         }
@@ -74,10 +80,10 @@ if (module_exists('node_import') && modu
         // Assign a default title if one has not already been mapped.
         if (!isset($node->title) || empty($node->title)) {
           $node->title = $node->name;
-        } 
- 
-        $node = node_submit($node);  
- 
+        }
+
+        $node = node_submit($node);
+
         // Look for an existing node. This works because profile node types
         // can only have one node per user.
         // change to:
@@ -90,7 +96,8 @@ if (module_exists('node_import') && modu
 
         node_save($node);
         // option to delete user if nodeprofile error
-      } else {
+      }
+      else {
         // report errors
       }
     }
diff -urp user_import_orig/supported/og.inc user_import/supported/og.inc
--- user_import_orig/supported/og.inc	2008-05-15 15:16:32.000000000 +0200
+++ user_import/supported/og.inc	2008-06-15 14:34:09.000000000 +0200
@@ -1,4 +1,10 @@
 <?php
+// $Id: og.inc,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
+
+/**
+ * @file
+ * Import organic groups module properties.
+ */
 
 /**
  * Implementation of hook_user_import_form_fieldsets().
@@ -6,71 +12,70 @@
 function og_user_import_form_fieldset($import, $collapsed) {
 
   $groups = user_import_get_groups();
-  
+
   $groups_description = empty($groups) ? t('No Groups have been defined.') : t('Select which group(s) imported users should be assigned.');
-  
+
   $form['group_assign'] = array(
-      '#type' => 'fieldset',
-      '#title' => t('Group Assign'),
-      '#description' => $groups_description,
-      '#collapsible' => TRUE,
-      '#collapsed' => $collapsed, 
+    '#type' => 'fieldset',
+    '#title' => t('Group Assign'),
+    '#description' => $groups_description,
+    '#collapsible' => TRUE,
+    '#collapsed' => $collapsed,
   );
-  
-  if (!empty($groups)) {
 
+  if (!empty($groups)) {
     $form['group_assign']['groups'] = array(
       '#type' => 'checkboxes',
       '#title' => t('Groups'),
       '#options' => $groups,
       '#default_value' => $import['options']['groups'],
     );
-    
+
     $form['group_assign']['existing'] = array(
-        '#type' => 'fieldset',
-        '#title' => t('Existing Users'),
-        '#description' => t('Add to selected groups users who already have an account. Optionaly send them an email.'),
-        '#collapsible' => TRUE,
-        '#collapsed' => TRUE, 
-    );
-    
-     $form['group_assign']['existing']['existing_og_subscribe'] = array(
-          '#type' => 'radios',
-          '#title' => t('Subscribe'),
-          '#default_value' => $import['options']['existing_og_subscribe'],
-          '#options' => array(t('No'), t('Yes')),
-     ); 
-     
+      '#type' => 'fieldset',
+      '#title' => t('Existing Users'),
+      '#description' => t('Add to selected groups users who already have an account. Optionaly send them an email.'),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+
+    $form['group_assign']['existing']['existing_og_subscribe'] = array(
+      '#type' => 'radios',
+      '#title' => t('Subscribe'),
+      '#default_value' => $import['options']['existing_og_subscribe'],
+      '#options' => array(t('No'), t('Yes')),
+    );
+
     $form['group_assign']['existing']['existing_og_subject'] = array(
       '#type' => 'textfield',
       '#title' => t('Message Subject'),
       '#default_value' => $import['options']['existing_og_subject'],
-      '#description' => t('Customize the subject of the email sent to existing users being added to groups.') .' '. t('Available variables are:') .' !username, !site, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url' . $profile_string . '.',
+      '#description' => t('Customize the subject of the email sent to existing users being added to groups.') .' '. t('Available variables are:') .' !username, !site, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url'. $profile_string .'.',
     );
-    
+
     $form['group_assign']['existing']['existing_og_markup'] = array(
       '#type' => 'radios',
       '#title' => t('Email Format'),
       '#default_value' => empty($import['options']['existing_og_markup']) ? 0 : $import['options']['existing_og_markup'],
       '#options' => array(t('Plain Text'), t('HTML')),
     );
-     
+
     $form['group_assign']['existing']['existing_og_message'] = array(
       '#type' => 'textarea',
       '#title' => t('Email Body'),
       '#default_value' => $import['options']['existing_og_message'],
-      '#description' => t('Message to send existing users being added to groups. Users who are already in a group will not be sent a message.') .' '. t('Available variables are:') .' !username, !site, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url' . $profile_string . '.',
+      '#description' => t('Message to send existing users being added to groups. Users who are already in a group will not be sent a message.') .' '. t('Available variables are:') .' !username, !site, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url'. $profile_string .'.',
     );
-    
+
     $form['group_assign']['existing']['existing_og_css'] = array(
       '#type' => 'textarea',
       '#title' => t('Email CSS'),
       '#default_value' => $import['options']['existing_og_css'],
       '#description' => t('Use if sending HTML formated email.'),
     );
-  
+
   }
-        
+
   return $form;
 }
 
@@ -82,7 +87,7 @@ function og_user_import_pre_save($settin
 
   // user already exists - add to group?
   if (in_array('duplicate email', $errors)) og_user_import_group_add($settings, $email, $fields);
-  
+
   return;
 }
 
@@ -93,44 +98,44 @@ function og_user_import_after_save($sett
 
   $groups_selected = $settings['options']['groups'];
   $uid = $account->uid;
-   
+
   $organic_groups = user_import_get_groups();
-  if(empty($organic_groups)) return;
-  
+  if (empty($organic_groups)) return;
+
   $og_args = array('is_active' => 1, 'is_admin' => 0, 'mail_type' => 0, 'created' => time());
 
-  while(list($gid, $title) = each($organic_groups)) {
-  
+  while (list($gid, $title) = each($organic_groups)) {
+
       if (!empty($groups_selected[$gid])) og_save_subscription($gid, $uid, $og_args);
   }
-  
+
   return;
 }
 
 
 // add user to groups if already a member
 function og_user_import_group_add($settings, $email, $fields) {
-  
+
   if ($settings['setting'] != 'import') return;
-  
+
   $account = user_load(array('mail' => $email));
   if (!empty($settings['options']['existing_og_message'])) $profile = user_import_profile_load($account);
 
   $groups_subscribed = og_get_subscriptions($account->uid);
   $og_args = array('is_active' => 1, 'is_admin' => 0, 'mail_type' => 0, 'created' => time());
-  
-  foreach($settings['groups'] as $group) {
-    
+
+  foreach ($settings['groups'] as $group) {
+
     // is user member of group?
     if (!empty($group) && empty($groups_subscribed[$group])) {
-      
+
       // subscribe to group
       og_save_subscription($group, $account->uid, $og_args);
 
       if (!empty($settings['options']['existing_og_message'])) _user_import_send_email($account, $password, $profile, $settings['options']['existing_og_subject'], $settings['options']['existing_og_message'], $settings['options']['existing_og_markup'], $settings['options']['existing_og_css'], $settings['options']['subscribed']);
-      
+
     }
   }
 
   return;
-}
\ No newline at end of file
+}
diff -urp user_import_orig/supported/profile.inc user_import/supported/profile.inc
--- user_import_orig/supported/profile.inc	2008-05-15 15:16:32.000000000 +0200
+++ user_import/supported/profile.inc	2008-06-18 12:13:53.000000000 +0200
@@ -1,4 +1,10 @@
 <?php
+// $Id: profile.inc,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
+
+/**
+ * @file
+ * Import profile module properties.
+ */
 
 /**
  * Implementation of hook_user_import_form_field_match().
@@ -16,7 +22,7 @@ function profile_user_import_form_field_
 function profile_user_import_data($settings, $column_settings, $module, $field_id, $data, $column_id) {
 
   if ($module!= 'profile') return;
-  
+
   return trim($data[$column_id]);
 }
 
@@ -24,19 +30,25 @@ function profile_user_import_data($setti
  * Implementation of hook_user_import_after_save().
  */
 function profile_user_import_after_save($settings, $account, $password, $fields) {
-
   // import info to profile
   if (is_array($fields['profile'])) {
       while (list ($fid, $data) = each ($fields['profile'])) {
-          profile_user_import_save_profile($fid, $account->uid, trim($data[0]));
+      	profile_user_import_save_profile($fid, $account->uid, trim($data[0]));
       }
   }
-  
+
   return;
 }
 
 function profile_user_import_save_profile($field, $uid, $value) {
-    
-    $profile = db_query("INSERT INTO {profile_values} (fid,uid,value) VALUES(%d,%d,'%s')", $field, $uid, $value);
+	$sql = db_query("SELECT value FROM {profile_values} WHERE fid = %d AND uid = %d", $field, $uid);
+	if ($row = db_fetch_object($sql)) {
+      $profile = db_query("UPDATE {profile_values} SET value = '%s' WHERE fid = %d AND uid = %d", $value, $field, $uid);		
+	}
+	else {
+      $profile = db_query("INSERT INTO {profile_values} (fid,uid,value) VALUES(%d,%d,'%s')", $field, $uid, $value);
+	}
     return;
-}
\ No newline at end of file
+}
+
+
diff -urp user_import_orig/supported/subscribed.inc user_import/supported/subscribed.inc
--- user_import_orig/supported/subscribed.inc	2008-05-15 15:16:32.000000000 +0200
+++ user_import/supported/subscribed.inc	2008-06-15 14:33:37.000000000 +0200
@@ -1,11 +1,17 @@
 <?php
+// $Id: subscribed.inc,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
+
+/**
+ * @file
+ * Import subscribed module properties.
+ */
 
 /**
  * Implementation of hook_user_import_form_fieldsets().
  */
 function subscribed_user_import_form_fieldset($import, $collapsed) {
 
- if (module_exists('publication') && module_exists('schedule')) {
+  if (module_exists('publication') && module_exists('schedule')) {
 
     $publications = publication_select_publications('enewsletter');
     if (empty($publications)) return;
@@ -17,28 +23,28 @@ function subscribed_user_import_form_fie
         '#collapsed' => $collapsed,
         '#tree' => TRUE,
     );
-    
+
     foreach ($publications as $publication) {
-    
+
       $type = $publication->type;
-      
+
       $form['subscribed'][$type] = array(
           '#type' => 'fieldset',
           '#title' => check_plain($type),
       );
-      
+
     }
-    
+
     reset($publications);
     $subscribed = $import['options']['subscribed'];
- 
+
     foreach ($publications as $publication) {
-      
+
       $options = array();
       $schedules = schedule_select_schedules($type, $publication->publication_id);
       $options[0] = t('No Subscription');
-      
-      foreach ($schedules as $schedule) {                     
+
+      foreach ($schedules as $schedule) {
         $options[ $schedule['schedule_id'] ] = $schedule['schedule_title'];
       }
 
@@ -51,10 +57,10 @@ function subscribed_user_import_form_fie
         '#options' => $options,
         '#description' => check_plain($publication->description),
       );
-      
+
     }
   }
-  
+
   return $form;
 }
 
@@ -62,31 +68,31 @@ function subscribed_user_import_form_fie
  * Implementation of hook_user_import_after_save().
  */
 function subscribed_user_import_after_save($settings, $account, $password, $fields) {
-   
+
   if (!module_exists('publication') || !module_exists('schedule') || !module_exists('identity_hash') || empty($settings['options']['subscribed'])) return;
-  
+
   $subscribed_settings = $settings['options']['subscribed'];
   $uid = $account->uid;
 
-  if (is_array($subscribed)) {  
-	
+  if (is_array($subscribed_settings)) {
+
     while (list($type, $type_subscriptions) = each($subscribed_settings)) {
 
-      $subscriptions = $type_subscriptions; 
+      $subscriptions = $type_subscriptions;
 
-			foreach($type_subscriptions as $publication_id => $schedule) {
-	    	if (empty($schedule[0])) unset($subscriptions[$publication_id]);
-			}
+      foreach ($type_subscriptions as $publication_id => $schedule) {
+        if (empty($schedule[0])) unset($subscriptions[$publication_id]);
+      }
 
-			$publications = publication_select_publications_and_terms($type);
+      $publications = publication_select_publications_and_terms($type);
 
       if (!empty($publications) && !empty($subscriptions)) {
         subscribed_set_subscriptions($type, $uid, $publications, $subscriptions);
-        subscribed_set_subscriptions_terms($type, $uid, $publications, $subscriptions); 
+        subscribed_set_subscriptions_terms($type, $uid, $publications, $subscriptions);
         identity_hash_set_hash($uid);
       }
 
     }
   }
   return;
-}
\ No newline at end of file
+}
diff -urp user_import_orig/supported/user_import.inc user_import/supported/user_import.inc
--- user_import_orig/supported/user_import.inc	2008-05-15 15:16:32.000000000 +0200
+++ user_import/supported/user_import.inc	2008-06-18 08:11:46.000000000 +0200
@@ -1,8 +1,14 @@
 <?php
+// $Id: user_import.inc,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
+
+/**
+ * @file
+ * Import users from a comma separated file (csv).
+ */
 
 /**
  * Implementation of hook_user_import_form_fieldsets().
- * Add fieldsets to an import settings form. 
+ * Add fieldsets to an import settings form.
  */
 function user_import_user_import_form_fieldset($import, $collapsed) {
 
@@ -10,95 +16,96 @@ function user_import_user_import_form_fi
   _user_import_edit_template_fields($form, $import);
   _user_import_edit_settings_fields($form, $import, $collapsed);
   _user_import_edit_remove_fields($form, $import);
-  
+
   return $form;
 }
- 
+
 
 /**
  * Implementation of hook_user_import_after_save().
  */
 function user_import_user_import_after_save($settings, $account, $password, $fields) {
-   
+
   if (!empty($settings['send_email'])) _user_import_send_email($account, $password, $fields, $settings['options']['subject'], $settings['options']['message'], $settings['options']['message_format'], $settings['options']['message_css'], $settings['options']['subscribed']);
-  
+
   return;
 }
 
-// Send email when account is created    
+// Send email when account is created
 function _user_import_send_email($account, $password, $profile, $subject, $body, $format, $css, $subscribed) {
 
-    global $base_url;
-    $from = variable_get('site_mail', ini_get('sendmail_from'));
-    
-    $variables = array(
-      '!username' => $account->name, 
-      '!uid' => $account->uid, 
-      '!site' => variable_get('site_name', 'drupal'), 
-      '!login_url' => user_pass_reset_url($account), 
-      '!password' => $password, 
-      '!uri' => $base_url, 
-      '!uri_brief' => drupal_substr($base_url, drupal_strlen('http://')), 
-      '!mailto' => $account->mail, 
-      '!date' => format_date(time()), 
-      '!login_uri' => url('user', NULL, NULL, TRUE), 
-      '!edit_uri' => url('user/'. $account->uid .'/edit', NULL, NULL, TRUE),
-    );
-    
-   	_user_import_publication_email($variables, $account, $subscribed, $format);
-
-    // import info to profile
-    if (module_exists('profile') && is_array($profile)) {
-      
-      $profile_name = _user_import_profile('fid', 'name');
-      
-      while (list ($fid, $field_name) = each ($profile_name)) {
-        $variables['!' . $field_name] = $profile[$fid];
-      }
+  global $base_url;
+  $from = variable_get('site_mail', ini_get('sendmail_from'));
+
+  $options['absulute'] = TRUE;
+
+  $variables = array(
+    '!username' => $account->name,
+    '!uid' => $account->uid,
+    '!site' => variable_get('site_name', 'drupal'),
+    '!login_url' => user_pass_reset_url($account),
+    '!password' => $password,
+    '!uri' => $base_url,
+    '!uri_brief' => drupal_substr($base_url, drupal_strlen('http://')),
+    '!mailto' => $account->mail,
+    '!date' => format_date(time()),
+    '!login_uri' => url('user', $options),
+    '!edit_uri' => url('user/'. $account->uid .'/edit', $options),
+  );
+
+  _user_import_publication_email($variables, $account, $subscribed, $format);
+
+  // import info to profile
+  if (module_exists('profile') && is_array($profile)) {
+    $profile_name = _user_import_profile('fid', 'name');
+    while (list ($fid, $field_name) = each ($profile_name)) {
+      $variables['!'. $field_name] = $profile[$fid];
     }
+  }
+
+  $subject = (empty($subject)) ? _user_mail_text('welcome_subject', $variables) : strtr($subject, $variables);
+  $subject = mime_header_encode($subject);
+  $body = (empty($body)) ? _user_mail_text('welcome_body', $variables) : strtr($body, $variables);
+  $body = str_replace("\r", '', $body);
+
+  $header = "From: $from\n";
+  $header .= "Reply-to: $from\n";
+  $header .= "X-Mailer: Drupal\n";
+  $header .= "Return-path: $from\n";
+  $header .= "Errors-to: $from\n";
+  $header .= 'MIME-Version: 1.0';
+  $header .= "\n";
 
-    $subject = (empty($subject)) ? _user_mail_text('welcome_subject', $variables) : strtr($subject, $variables);
-    $subject = mime_header_encode($subject);
-    $body = (empty($body)) ? _user_mail_text('welcome_body', $variables) : strtr($body, $variables);
-    $body = str_replace("\r", '', $body);
-    
-    $header = "From: $from\n";
-    $header .= "Reply-to: $from\n";
-    $header .= "X-Mailer: Drupal\n";
-    $header .= "Return-path: $from\n";
-    $header .= "Errors-to: $from\n";
-    $header .= 'MIME-Version: 1.0';
-    $header .= "\n"; 
-
-    if ($format == 1) {
-      
-      $header .= 'Content-Type: text/html; charset=UTF-8; Content-transfer-encoding: 8Bit'; 
-      
-      $body_head = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+  if ($format == 1) {
+
+    $header .= 'Content-Type: text/html; charset=UTF-8; Content-transfer-encoding: 8Bit';
+
+    $body_head = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
               <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
               <head>
               <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />';
-              
-      if (!empty($css)) $body_head .= '<style type="text/css">' . check_plain($css) . '</style>';
-    
-      $body = $body_head . '</head><body>' . $body . '<body></html>';
-      
-    } else {
-      $header .= 'Content-Type: text/plain; charset=UTF-8; format=flowed Content-transfer-encoding: 8Bit';
-    }
 
-    //mail($account->mail, $subject, $body, $header);
-    return;
+    if (!empty($css)) $body_head .= '<style type="text/css">'. check_plain($css) .'</style>';
+
+    $body = $body_head .'</head><body>'. $body .'<body></html>';
+
+  }
+  else {
+    $header .= 'Content-Type: text/plain; charset=UTF-8; format=flowed Content-transfer-encoding: 8Bit';
+  }
+
+  //mail($account->mail, $subject, $body, $header);
+  return;
 }
 
-function _user_import_edit_settings_fields(&$form, $import, $collapsed) { 
+function _user_import_edit_settings_fields(&$form, $import, $collapsed) {
 
   $form['optional'] = array(
       '#type' => 'fieldset',
       '#title' => t('Options'),
       '#weight' => -85,
       '#collapsible' => TRUE,
-      '#collapsed' => $collapsed, 
+      '#collapsed' => $collapsed,
   );
 
   $form['optional']['update_users'] = array(
@@ -107,88 +114,88 @@ function _user_import_edit_settings_fiel
       '#default_value' => $import['options']['update_users'],
       '#description' => t('If the email address of a user being imported already exists, update the existing user details with the imported data.'),
   );
-  
+
   $form['optional']['first_line_skip'] = array(
       '#type' => 'checkbox',
       '#title' => t('Ignore First Line'),
       '#default_value' => $import['first_line_skip'],
       '#description' => t('If the first line is the names of the data columns, set to ignore first line.'),
   );
-  
+
   $form['optional']['contact'] = array(
       '#type' => 'checkbox',
       '#title' => t('Contact'),
       '#default_value' => $import['contact'],
       '#description' => t("Set each user's personal contact form to 'allowed'."),
   );
-  
+
   $form['optional']['send_email'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Send Email'),
-      '#default_value' => $import['send_email'],
-      '#description' => t('Send email to users when their account is created.'),
+    '#type' => 'checkbox',
+    '#title' => t('Send Email'),
+    '#default_value' => $import['send_email'],
+    '#description' => t('Send email to users when their account is created.'),
   );
-  
+
   $form['optional']['username_space'] = array(
       '#type' => 'checkbox',
       '#title' => t('Username Space'),
       '#default_value' => $import['username_space'],
       '#description' => t("Include spaces in usernames, e.g. 'John' + 'Smith' => 'John Smith'."),
   );
-  
+
   $form['optional']['activate'] = array(
       '#type' => 'checkbox',
       '#title' => t('Activate Accounts'),
       '#default_value' => $import['options']['activate'],
       '#description' => t("User accounts will not be visible to other users until their owner logs in. Select this option to make all imported user accounts visible."),
   );
-  
+
   return;
 }
 
 function _user_import_edit_template_fields(&$form, $import) {
-    
+
   // settings template update controls
   if (empty($import['name'])) {
-  
+
      // new settings template save controls
-      
+
       $form['save'] = array(
           '#type' => 'fieldset',
           '#title' => t('Save Settings'),
           '#description' => t('Save settings for re-use on other imports.'),
           '#weight' => 90,
           '#collapsible' => TRUE,
-          '#collapsed' => FALSE, 
+          '#collapsed' => FALSE,
       );
-      
-       $form['save']['name'] = array(
+
+      $form['save']['name'] = array(
           '#type' => 'textfield',
           '#title' => t('Settings Name'),
           '#size' => 26,
           '#maxlength' => 25,
           '#description' => t('Name to identify these settings by.'),
       );
-      
+
       $form['save'][] = array(
-          '#type' => 'submit', 
+          '#type' => 'submit',
           '#value' => t('Save'),
       );
 
-  } 
+  }
   else {
-      
+
       $form['save'] = array(
           '#type' => 'fieldset',
           '#title' => t('Saved Settings'),
           '#description' => t("If changes have neen made to the settings since they where last saved you can update the saved template, or save them as a new template."),
           '#weight' => 90,
           '#collapsible' => TRUE,
-          '#collapsed' => TRUE, 
+          '#collapsed' => TRUE,
       );
-      
+
       $form['save']['name'] = array(
-          '#type' => 'value', 
+          '#type' => 'value',
           '#value' => $import['name']
       );
 
@@ -197,56 +204,56 @@ function _user_import_edit_template_fiel
           '#title' => t('Update'),
           '#description' => t("Update '%name' settings template", array('%name' => $import['name'])),
       );
-      
+
       $form['save']['update']['submit'] = array(
-          '#type' => 'submit', 
+          '#type' => 'submit',
           '#value' => t('Update'),
       );
-          
+
       $form['save']['new'] = array(
           '#type' => 'fieldset',
           '#title' => t('Create New'),
           '#description' => t("Save as new settings template"),
       );
-      
-       $form['save']['new']['new_name'] = array(
+
+      $form['save']['new']['new_name'] = array(
           '#type' => 'textfield',
           '#title' => t('Save As New'),
           '#size' => 30,
           '#maxlength' => 25,
           '#description' => t('Name to identify these settings by.'),
       );
-      
+
       $form['save']['new'][] = array(
-          '#type' => 'submit', 
+          '#type' => 'submit',
           '#value' => t('Save As New'),
       );
 
   }
-  
+
   return;
 }
 
 
 function _user_import_edit_remove_fields(&$form, $import) {
-        
+
   $form['remove'] = array(
       '#type' => 'fieldset',
       '#title' => t('Use Different CSV File'),
       '#description' => t('Remove file to use a different file. All settings on this page will be deleted.'),
       '#weight' => -100,
       '#collapsible' => TRUE,
-      '#collapsed' => TRUE, 
+      '#collapsed' => TRUE,
   );
-  
+
   $form['remove']['file'] = array(
-      '#type' => 'item', 
+      '#type' => 'item',
       '#title' => t('Uploaded file'),
       '#value' => $import['filename']
   );
 
   $form['remove']['submit'] = array(
-      '#type' => 'submit', 
+      '#type' => 'submit',
       '#value' => t('Remove file')
   );
 
@@ -256,38 +263,38 @@ function _user_import_edit_remove_fields
 function _user_import_publication_email(&$variables, $account, $subscribed, $format) {
 
   if (!module_exists('publication') || !module_exists('schedule') || !module_exists('identity_hash')) {
-		return;
-	}
-	
-	
+    return;
+  }
+
+
 
   $id_hash = identity_hash_select_hash($account->uid);
   $variables['!id_hash'] = $id_hash->hash;
-  
+
   while (list($type, $subscriptions) = each($subscribed)) {
 
     while (list($publication_id, $shedule) = each($subscriptions)) {
 
       if (!empty($shedule[0])) {
- 
+
         $publication = publication_select_publications($type, $publication_id);
-				
-        $update_link = url('subscribed/preferences/' . $publication_id . '/' . $id_hash->hash, NULL, NULL, TRUE);
-        $unsubscribe_link = url('subscribed/delete/' . $publication_id . '/' . $id_hash->hash, NULL, NULL, TRUE);
-        
+
+        $update_link = url('subscribed/preferences/'. $publication_id .'/'. $id_hash->hash, NULL, NULL, TRUE);
+        $unsubscribe_link = url('subscribed/delete/'. $publication_id .'/'. $id_hash->hash, NULL, NULL, TRUE);
+
         if ($format == 1) {
-         
-          $variables['!subscribed_links'] .= '<strong>' . $publication->title . '</strong><br />' .
-          '<a href="' . $update_link . '">' . t('Update Preferences') . '</a> | <a href="' . $unsubscribe_link . '">' . t('Unsubscribe') . '</a><br />';
+
+          $variables['!subscribed_links'] .= '<strong>'. $publication->title .'</strong><br />'.
+          '<a href="'. $update_link .'">'. t('Update Preferences') .'</a> | <a href="'. $unsubscribe_link .'">'. t('Unsubscribe') .'</a><br />';
 
         }
         else {
-        
-          $variables['!subscribed_links'] .= $publication->title . "\n" .
-          ' - ' . t('Update Preferences') . ' ' . $update_link . '\n' .
-          ' - ' . t('Unsubscribe') . ' ' . $unsubscribe_link . '\n';
+
+          $variables['!subscribed_links'] .= $publication->title .'\n'.
+          ' - '. t('Update Preferences') .' '. $update_link .'\n'.
+          ' - '. t('Unsubscribe') .' '. $unsubscribe_link .'\n';
         }
       }
     }
-  }  
+  }
 }
diff -urp user_import_orig/supported/user.inc user_import/supported/user.inc
--- user_import_orig/supported/user.inc	2008-05-15 15:16:32.000000000 +0200
+++ user_import/supported/user.inc	2008-06-18 15:54:12.000000000 +0200
@@ -1,13 +1,23 @@
 <?php
+// $Id: user.inc,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
+
+/**
+ * @file
+ * Include user module properties.
+ */
 
 /**
  * Implementation of hook_user_import_form_field_match().
  */
- function user_user_import_form_field_match() {
+function user_user_import_form_field_match() {
 
   $options = array();
-  $options['user']['email'] = t('Email Address*');
-  $options['user']['password'] = t('Password'); 
+
+  $options['user']['email'] = t('Email Address *');
+  $options['user']['password'] = t('Password');
+  $options['user']['role'] = t('Role');
+  $options['user']['language'] = t('Language');
+  $options['user']['delete'] = t('Delete');
 
   return $options;
 }
@@ -33,7 +43,7 @@ function user_user_import_data($settings
   if ($module != 'user') return;
 
   if ($field_id == 'email') {
-    $value = trim($data[$column_id]);  
+    $value = trim($data[$column_id]);
     _user_import_validate_email($value, $settings['options']['update_users']);
   }
 
@@ -41,6 +51,18 @@ function user_user_import_data($settings
     $value = trim($data[$column_id]);
   }
 
+  if ($field_id == 'role') {
+    $value = drupal_strtolower(trim($data[$column_id]));
+  }
+
+  if ($field_id == 'language') {
+    $value = drupal_strtolower(trim($data[$column_id]));
+  }
+
+  if ($field_id == 'delete') {
+    $value = drupal_strtolower(trim($data[$column_id]));
+  }
+
   return $value;
 }
 
@@ -49,48 +71,66 @@ function user_user_import_data($settings
  */
 function user_user_import_pre_save($settings, $account, $password, $fields, $errors) {
 
-	  $account_add['mail'] = $fields['user']['email'][0];
+  $account_add['mail'] = $fields['user']['email'][0];
 
-	if (empty($settings['options']['update_users'])) {
+  // get roles from csv
+  $role = $fields['user']['role'][0];
+  //check if role exists:
+
+  $rid = db_result(db_query("SELECT rid FROM {role} WHERE name = '%s'", $role));
+  if ($rid) {
+    $account_add['roles'][$rid] = $rid;
+  }
+  else {
+    // it doesn't exist, create it
+    db_query("INSERT INTO {role} (name) VALUES ('%s')", $role);
+    $rid = db_last_insert_id('role', 'rid');
+    $account_add['roles'][$rid] = $rid;
+  }
+    
+  if (empty($settings['options']['update_users'])) {
+
+    $account_add['timezone'] = '-18000';
+    $account_add['status'] = 1;
+    $account_add['init'] = $fields['user']['email'][0];
+    $account_add['pass'] = (empty($fields['user']['password'][0])) ? user_password() : $fields['user']['password'][0];
+    $account_add['language'] = $fields['user']['language'][0];
+
+    // get enabled roles
+    if (is_array($settings['roles'])) {
+      while (list ($rid, $role_set) = each ($settings['roles'])) {
+        if (!empty($role_set)) $account_add['roles'][$rid] = $rid;
+      }
+    }
+
+    if (!empty($settings['options']['activate'])) {
+      $account_add['access'] = time();
+      $account_add['login'] = time();
+    }
+
+    if ($settings['contact'] == 1) $account_add['contact'] = 1;
+  }
 
-	  $account_add['timezone'] = '-18000';
-	  $account_add['status'] = 1;
-	  $account_add['init'] = $fields['user']['email'][0];
-	  $account_add['pass'] = (empty($fields['user']['password'][0])) ? user_password() : $fields['user']['password'][0];
-
-	  // get enabled roles
-	  while (list ($rid, $role_set) = each ($settings['roles'])) {
-	      if (!empty($role_set)) $account_add['roles'][$rid] = $rid;
-	  }
-  
-	  if (!empty($settings['options']['activate'])) {
-	    $account_add['access'] = time();
-	    $account_add['login'] = time();
-	  }
-  
-	  if ($settings['contact'] == 1) $account_add['contact'] = 1; 
-	} 
-  
   return $account_add;
 }
 
 
-function user_user_import_edit_roles_fields(&$form, $import, $collapsed) { 
-        
+function user_user_import_edit_roles_fields(&$form, $import, $collapsed) {
+
   $roles_data = user_roles();
   // remove 'anonymous user' option
   while (list ($rid, $role_name) = each ($roles_data)) {
       if ($role_name != 'anonymous user' && $role_name != 'authenticated user') $roles[$rid] = $role_name;
   }
-  
+
   // roles selected
   if ( !empty($import['roles']) ) {
       foreach ($import['roles'] as $rid) {
           if ($rid != 0) $roles_selected[] = $rid;
       }
   }
-  
-  if ( empty($roles_selected) ) $roles_selected[] = 2; 
+
+  if ( empty($roles_selected) ) $roles_selected[] = 2;
 
   $form['role_selection'] = array(
       '#type' => 'fieldset',
@@ -100,72 +140,69 @@ function user_user_import_edit_roles_fie
       '#collapsible' => TRUE,
       '#collapsed' => $collapsed,
   );
-  
+
   $form['role_selection']['roles'] = array(
       '#type' => 'checkboxes',
       '#options' => $roles,
       '#default_value' => $roles_selected,
   );
-  
+
   return;
 }
 
-function user_user_import_edit_email_fields(&$form, $import, $collapsed) { 
+function user_user_import_edit_email_fields(&$form, $import, $collapsed) {
 
-    $form['email_message'] = array(
-        '#type' => 'fieldset',
-        '#title' => t('Email Message'),
-        '#description' => t('Welcome message to be sent to imported users. Leave blank to use the default !message.<br /><strong>Warning</strong>: if you copy and paste directly from Word some characters may get garbled.', array('!message' => l('message', 'admin/user/settings'))),
-        '#collapsible' => TRUE,
-        '#collapsed' => $collapsed,
-    );
-
-    $form['email_message']['subject'] = array(
-      '#type' => 'textfield',
-      '#title' => t('Message Subject'),
-      '#default_value' => $import['options']['subject'],
-      '#description' => t('Customize the subject of the welcome e-mail, which is sent to imported members.') .' '. t('Available variables are:') .' !username, !site, !password, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url' . $profile_string . '.',
-    ); 
-    
-    $form['email_message']['message'] = array(
-      '#type' => 'textarea',
-      '#title' => t('Message'),
-      '#default_value' => $import['options']['message'],
-      '#description' => t('Customize the body of the welcome e-mail, which is sent to imported members.') .' '. t('Available variables are:') .' !username, !site, !password, !uri, !uri_brief, !mailto, !login_uri, !edit_uri, !login_url' . $profile_string . '.',
-    ); 
-    
-    $form['email_message']['message_format'] = array(
-      '#type' => 'radios',
-      '#title' => t('Email Format'),
-      '#default_value' => empty($import['options']['message_format']) ? 0 : $import['options']['message_format'],
-      '#options' => array(t('Plain Text'), t('HTML')),
-    );
-    
-    $form['email_message']['message_css'] = array(
-      '#type' => 'textarea',
-      '#title' => t('CSS'),
-      '#default_value' => $import['options']['message_css'],
-      '#description' => t('Use if sending HTML formated email.'),
-    );
-    
-    return;
+  $form['email_message'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Email Message'),
+    '#description' => t('Welcome message to be sent to imported users. Leave blank to use the default !message.<br /><strong>Warning</strong>: if you copy and paste directly from Word some characters may get garbled.', array('!message' => l('message', 'admin/user/settings'))),
+    '#collapsible' => TRUE,
+    '#collapsed' => $collapsed,
+  );
+
+  $form['email_message']['subject'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Message Subject'),
+    '#default_value' => $import['options']['subject'],
+    '#description' => t('Customize the subject of the welcome e-mail, which is sent to imported members.') .' '. t('Available variables are:') .' !username, !site, !password, !uri, !uri_brief, !mailto, !date, !login_uri, !edit_uri, !login_url'. $profile_string .'.',
+  );
+
+  $form['email_message']['message'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Message'),
+    '#default_value' => $import['options']['message'],
+    '#description' => t('Customize the body of the welcome e-mail, which is sent to imported members.') .' '. t('Available variables are:') .' !username, !site, !password, !uri, !uri_brief, !mailto, !login_uri, !edit_uri, !login_url'. $profile_string .'.',
+  );
+
+  $form['email_message']['message_format'] = array(
+    '#type' => 'radios',
+    '#title' => t('Email Format'),
+    '#default_value' => empty($import['options']['message_format']) ? 0 : $import['options']['message_format'],
+    '#options' => array(t('Plain Text'), t('HTML')),
+  );
+
+  $form['email_message']['message_css'] = array(
+    '#type' => 'textarea',
+    '#title' => t('CSS'),
+    '#default_value' => $import['options']['message_css'],
+    '#description' => t('Use if sending HTML formated email.'),
+  );
+
+  return;
 }
 
 
 function _user_import_validate_email($email = NULL, $duplicates_allowed = FALSE) {
-
   if (!$email) {
     user_import_errors(t('no email'));
   }
-  
   elseif (!valid_email_address($email)) {
     user_import_errors(t('invalid email'));
   }
-
   // Handle duplicate emails.
   elseif (!$duplicates_allowed && _user_import_existing_uid($email)) {
     user_import_errors(t('duplicate email'));
   }
-
+  
   return;
 }
diff -urp user_import_orig/supported/watchdog.inc user_import/supported/watchdog.inc
--- user_import_orig/supported/watchdog.inc	2008-05-15 15:16:32.000000000 +0200
+++ user_import/supported/watchdog.inc	2008-06-15 14:32:31.000000000 +0200
@@ -1,11 +1,17 @@
 <?php
+// $Id: watchdog.inc,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
+
+/**
+ * @file
+ * Import watchdog properties.
+ */
 
 /**
  * Implementation of hook_user_import_after_save().
  */
 function watchdog_user_import_after_save($settings, $account, $password, $fields) {
 
-  watchdog('user', t('New user: %name %email.', array('%name' => theme('placeholder', check_plain($account->name)), '%email' => theme('placeholder', '<'. check_plain($account->mail) .'>'))), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $account->uid .'/edit'));
+  watchdog('user', 'New user: %name %email.', array('%name' => theme('placeholder', check_plain($account->name)), '%email' => theme('placeholder', '<'. check_plain($account->mail) .'>')), WATCHDOG_NOTICE, l(t('edit'), 'user/'. $account->uid .'/edit'));
 
   return;
 }
\ No newline at end of file
Only in user_import: user_import.csv
Only in user_import: user_import.csv~
diff -urp user_import_orig/user_import.info user_import/user_import.info
--- user_import_orig/user_import.info	2008-05-16 02:18:43.000000000 +0200
+++ user_import/user_import.info	2008-06-14 15:18:23.000000000 +0200
@@ -15,4 +15,5 @@ project = "user_import"
 version = "5.x-2.x-dev"
 project = "user_import"
 datestamp = "1210897123"
+core = 6.x
 
diff -urp user_import_orig/user_import.install user_import/user_import.install
--- user_import_orig/user_import.install	2008-05-15 15:16:31.000000000 +0200
+++ user_import/user_import.install	2008-06-15 14:30:50.000000000 +0200
@@ -1,8 +1,149 @@
 <?php
-// $Id: user_import.install,v 1.5.2.3 2008/05/15 13:16:31 MegaGrunt Exp $
+// $Id: user_import.install,v 1.17.2.5 2008/05/15 13:16:31 MegaGrunt Exp $
 
 /**
- * Implementation of hook_install()
+ * @file
+ * Import users from a comma separated file (csv).
+ */
+
+/**
+ * Implementation of hook_schema().
+ */
+function user_import_schema() {
+$schema['user_import'] = array(
+    'fields' => array(
+      'import_id' => array(
+        'type' => 'serial',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'disp-width' => '10'
+      ),
+      'name' => array(
+        'type' => 'varchar',
+        'length' => '25',
+        'not null' => TRUE,
+        'default' => ''
+      ),
+      'filename' => array(
+        'type' => 'varchar',
+        'length' => '50',
+        'not null' => TRUE,
+        'default' => ''
+      ),
+      'oldfilename' => array(
+        'type' => 'varchar',
+        'length' => '50',
+        'not null' => TRUE,
+        'default' => ''
+      ),
+      'filepath' => array(
+        'type' => 'text',
+        'size' => 'small',
+        'not null' => TRUE
+      ),
+      'started' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '11'
+      ),
+      'pointer' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '10'
+      ),
+      'processed' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '10'
+      ),
+      'valid' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '10'
+      ),
+      'first_line_skip' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '1'
+      ),
+      'contact' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '1'
+      ),
+      'username_space' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '1'
+      ),
+      'send_email' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '1'
+      ),
+      'field_match' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'not null' => TRUE
+      ),
+      'roles' => array(
+        'type' => 'varchar',
+        'length' => '255',
+        'not null' => TRUE,
+        'default' => ''
+      ),
+      'options' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'not null' => TRUE
+      ),
+      'setting' => array(
+        'type' => 'varchar',
+        'length' => '10',
+        'not null' => TRUE,
+        'default' => ''
+      )
+    ),
+    'primary key' => array('import_id'),
+  );
+
+  $schema['user_import_errors'] = array(
+    'fields' => array(
+      'import_id' => array(
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 0,
+        'disp-width' => '10'
+      ),
+      'data' => array(
+        'type' => 'text',
+        'size' => 'big',
+        'not null' => TRUE
+      ),
+      'errors' => array(
+        'type' => 'varchar',
+        'length' => '25',
+        'not null' => TRUE,
+        'default' => ''
+      )
+    ),
+    'indexes' => array(
+      'import_id' => array('import_id')
+    ),
+  );
+  return $schema;
+}
+
+/**
+ * Implementation of hook_install().
  *
  * This will automatically install the database tables for the user import module for both the MySQL and PostgreSQL databases.
  *
@@ -12,57 +153,13 @@
  * and will need to be removed.
  */
 function user_import_install() {
-  switch ($GLOBALS['db_type']) {
-    case 'mysqli':
-    case 'mysql':
-      $query1 = db_query("CREATE TABLE IF NOT EXISTS {user_import} (
-                        import_id int(10) unsigned NOT NULL auto_increment,
-                        name varchar(25) NOT NULL default '',
-                        filename varchar(50) NOT NULL default '',
-                        oldfilename varchar(50) NOT NULL default '',
-                        filepath tinytext NOT NULL,
-                        started int(11) NOT NULL default '0',
-                        pointer int(10) NOT NULL default '0',
-                        processed int(10) NOT NULL default '0',
-                        valid int(10) NOT NULL default '0',
-                        first_line_skip int(1) NOT NULL default '0',
-                        contact int(1) NOT NULL default '0',
-                        username_space int(1) NOT NULL default '0',
-                        send_email int(1) NOT NULL default '0',
-                        field_match longtext NOT NULL,
-                        roles varchar(255) NOT NULL default '',
-                        options longtext NOT NULL,
-                        setting varchar(10) NOT NULL default '',
-                        PRIMARY KEY  (import_id)
-                        ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
-  
-      $query2 = db_query("CREATE TABLE IF NOT EXISTS {user_import_errors} (
-                        import_id int(10) NOT NULL default '0',
-                        data longtext NOT NULL,
-                        errors varchar(25) NOT NULL default '',
-                        KEY import_id (import_id)
-                        ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
-
-      if ($query1 && $query2) {
-        $created = TRUE;
-      }
-      break;      
-  }
-  
-  if ($created) {
-    drupal_set_message(t('User Import module installed successfully.'));
-  }
-  else {
-    drupal_set_message(t('Table installation for the User Import module was unsuccessful. The tables may need to be installed by hand. See user_import.install file for a list of the installation queries.'), 'error');
-  }
-  
-  return;
+  drupal_install_schema('user_import');
 }
 
 function user_import_update_1() {
 
     _system_update_utf8(array('user_import', 'user_import_errors'));
-    
+
   return;
 }
 
@@ -75,7 +172,7 @@ function user_import_update_2() {
 function user_import_update_3() {
   $ret = array();
   $ret[] = update_sql("ALTER TABLE {user_import} CHANGE iid import_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT");
-  $ret[] = update_sql("ALTER TABLE {user_import} CHANGE first_line first_line_skip INT(10) UNSIGNED NOT NULL default '0'");  
+  $ret[] = update_sql("ALTER TABLE {user_import} CHANGE first_line first_line_skip INT(10) UNSIGNED NOT NULL default '0'");
   $ret[] = update_sql("ALTER TABLE {user_import_errors} CHANGE iid import_id INT(10) UNSIGNED NOT NULL default '0'");
   return $ret;
 }
@@ -87,11 +184,10 @@ function user_import_update_4() {
 }
 
 /**
-* Implementation of hook_uninstall().
-*/
+ * Implementation of hook_uninstall().
+ */
 function user_import_uninstall() {
-  db_query('DROP TABLE {user_import}');
-  db_query('DROP TABLE {user_import_errors}');
+  drupal_uninstall_schema('user_import');
   variable_del('user_import_settings');
   variable_del('user_import_max');
   variable_del('user_import_line_max');
diff -urp user_import_orig/user_import.module user_import/user_import.module
--- user_import_orig/user_import.module	2008-05-15 15:16:31.000000000 +0200
+++ user_import/user_import.module	2008-06-18 15:56:24.000000000 +0200
@@ -7,14 +7,14 @@
  */
 
 /**
- * - - - - - - - -  HOOKS - - - - - - - - 
+ * - - - - - - - -  HOOKS - - - - - - - -
  */
 
 /**
  * Implementation of hook_help().
  */
-function user_import_help($section) {
-  switch ($section) {
+function user_import_help($path, $arg) {
+  switch ($path) {
     case 'admin/user/user_import':
       return t("Import users from a comma separated file (csv). Click 'Import' to start a new import.");
   }
@@ -30,112 +30,127 @@ function user_import_perm() {
 /**
  * Implementation of hook_menu().
  */
-function user_import_menu($may_cache) {
-  
+function user_import_menu() {
+
   global $user;
   $items = array();
-  
-     if ($may_cache) {     
-     
-        $items[] = array(
-            'path' => 'admin/user/user_import', 
-            'title' => t('User Imports'), 
-            'callback' => 'user_import_list',
-            'description' => t('Import users from a comma separated file (csv).'),
-            'access' => user_access('import users'),
-            );
-        $items[] = array(
-            'path' => 'admin/user/user_import/list', 
-            'title' => t('List Imports'), 
-            'access' => user_access('import users'),
-            'weight' => -10,
-            'type' => MENU_DEFAULT_LOCAL_TASK
-            );
-        $items[] = array(
-          'path' => 'admin/user/user_import/add', 
-          'title' => t('Import'),
-          'callback' => 'user_import_preferences',
-          'access' => user_access('import users'),
-          'weight' => -5,
-          'type' => MENU_LOCAL_TASK
-        );
-        $items[] = array(
-          'path' => 'admin/user/user_import/continue', 
-          'title' => t('Continue'),
-          'callback' => 'user_import_continue',
-          'access' => user_access('import users'),
-          'type' => MENU_CALLBACK
-        );
-        $items[] = array(
-          'path' => 'admin/user/user_import/import', 
-          'title' => t('Import'),
-          'callback' => 'user_import_import',
-          'access' => user_access('import users'),
-          'type' => MENU_CALLBACK
-        );
-        $items[] = array(
-          'path' => 'admin/user/user_import/delete', 
-          'title' => t('Delete Import'),
-          'callback' => 'user_import_delete',
-          'access' => user_access('import users'),
-          'type' => MENU_CALLBACK
-        );
-        
-        
-        $items[] = array(
-          'path' => 'admin/user/user_import/configure', 
-          'title' => t('Configure'),
-          'callback' => 'drupal_get_form',
-          'callback arguments' => array('user_import_configure_form'),
-          'access' => user_access('import users'),
-          'type' => MENU_LOCAL_TASK
-        );
-        
-        $items[] = array(
-          'path' => 'user_import', 
-          'title' => t('Import Users'),
-          'callback' => 'drupal_get_form',
-          'callback arguments' => array('user_import_preconfigured'),
-          'access' => user_access('limited user import'),
-        );
-        
-        $items[] = array(
-          'path' => 'user_import/delete', 
-          'title' => t('Remove Info'),
-          'callback' => 'user_import_limited_delete',
-          'type' => MENU_CALLBACK,
-          'access' => user_access('limited user import'),
-        );
-        
-        $items[] = array(
-          'path' => 'user_import/errors', 
-          'title' => t('Import Errors'),
-          'callback' => 'user_import_limited_errors',
-          'type' => MENU_CALLBACK,
-          'access' => user_access('limited user import'),
-        ); 
-    }
+
+  $items['admin/user/user_import'] = array(
+    'title' => 'User Imports',
+    'page callback' => 'user_import_list',
+    'description' => 'Import users from a comma separated file (csv).',
+    'access arguments' => array('import users'),
+  );
+  $items['admin/user/user_import/list'] = array(
+    'title' => 'List Imports',
+    'access arguments' => array('import users'),
+    'weight' => -10,
+    'type' => MENU_DEFAULT_LOCAL_TASK
+  );
+  $items['admin/user/user_import/add'] = array(
+    'title' => 'Import',
+    'page callback' => 'user_import_preferences',
+    'access arguments' => array('import users'),
+    'weight' => -5,
+    'type' => MENU_LOCAL_TASK
+  );
+  $items['admin/user/user_import/continue'] = array(
+    'title' => 'Continue',
+    'page callback' => 'user_import_continue',
+    'access arguments' => array('import users'),
+    'type' => MENU_CALLBACK
+  );
+  $items['admin/user/user_import/import'] = array(
+    'title' => 'Import',
+    'page callback' => 'user_import_import',
+    'access arguments' => array('import users'),
+    'type' => MENU_CALLBACK
+  );
+  $items['admin/user/user_import/delete'] = array(
+    'title' => 'Delete Import',
+    'page callback' => 'user_import_delete',
+    'access arguments' => array('import users'),
+    'type' => MENU_CALLBACK
+  );
+  $items['admin/user/user_import/configure'] = array(
+    'title' => 'Configure',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('user_import_configure_form'),
+    'access arguments' => array('import users'),
+    'type' => MENU_LOCAL_TASK
+  );
+  $items['user_import'] = array(
+    'title' => 'Import Users',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('user_import_preconfigured'),
+    'access arguments' => array('limited user import'),
+  );
+  $items['user_import/delete'] = array(
+    'title' => 'Remove Info',
+    'page callback' => 'user_import_limited_delete',
+    'type' => MENU_CALLBACK,
+    'access arguments' => array('limited user import'),
+  );
+  $items['user_import/errors'] = array(
+    'title' => 'Import Errors',
+    'page callback' => 'user_import_limited_errors',
+    'type' => MENU_CALLBACK,
+    'access arguments' => array('limited user import'),
+  );
 
   return $items;
 }
 
 function user_import_cron() {
-    
-    $imports = _user_import_settings_select();    
-    if (!$imports) return;
-    
+
+  $imports = _user_import_settings_select();
+  
+  if (is_array($imports)) {
     foreach ($imports as $import) {
-        
-        if ($import['setting'] == 'test' || $import['setting'] == 'import') _user_import_process($import);
+      if ($import['setting'] == 'test' || $import['setting'] == 'import') _user_import_process($import);
     }
-        
-    return;
+  }
+  
+  $file = variable_get('user_import_file', 'user_import.csv');
+  $path = drupal_get_path('module', 'user_import');
+
+  $settings_template = variable_get('user_import_settings', '2');
+  $template = _user_import_settings_select($settings_template);
+  $form_state['values']['filename'] = $file;
+  $form_state['values']['oldfilename'] = $file;
+  $form_state['values']['filepath'] = $path.'/'.$file;
+
+  // create import setting
+  $import = _user_import_settings_save($form_state['values']);
+  $import['first_line_skip'] = $template['first_line_skip'];
+  $import['contact'] = $template['contact'];
+  $import['username_space'] = $template['username_space'];
+  $import['send_email'] = $template['send_email'];
+  $import['field_match'] = $template['field_match'];
+  $import['roles'] = $template['roles'];
+  $import['options'] = $template['options'];
+  $import['update_users'] = 1;
+  $import['activate'] = 1;
+  $import['setting'] = 'import';
+
+  $filepath = file_move($import['filepath'], file_directory_path() .'/'. $import['filename']);
+  if (!empty($template['og_id'])) $import['groups'][$template['og_id']] = $template['og_id'];
+
+  $import = _user_import_settings_save($import);
+
+  $import['save']['update'] = NULL;
+  $import['import_template_id'] = NULL;
+  $import['save']['name'] = NULL;
+
+  _user_import_process($import);
+
+  return;
 }
 
-// - - - - - - - -  FORMS - - - - - - - - 
+// - - - - - - - -  FORMS - - - - - - - -
+
+function user_import_configure_form() {
 
-function user_import_configure_form() { 
-        
     $form['performance'] = array(
         '#type' => 'fieldset',
         '#title' => t('Performance'),
@@ -151,7 +166,7 @@ function user_import_configure_form() { 
         '#maxlength' => 10,
         '#description' => t('Maximum number of users to import each time the file is processed, useful for controling the rate at which emails are sent out.'),
     );
-    
+
     $form['performance']['user_import_line_max'] = array(
         '#type' => 'textfield',
         '#title' => t('Maximum length of line'),
@@ -160,45 +175,42 @@ function user_import_configure_form() { 
         '#maxlength' => 10,
         '#description' => t('The default is set at 1,000 characters, if a line in your csv is longer than this you should set a higher maximum here. Setting higher maximums will slow down imports.'),
     );
-    
-    
+
+
     $saved_templates = _user_import_settings_select(NULL, 'GET TEMPLATES');
-    
+
     if (!empty($saved_templates)) {
- 
+
         $form['settings_templates'] = array(
             '#type' => 'fieldset',
             '#title' => t('Settings Templates'),
             '#collapsible' => TRUE,
             '#collapsed' => TRUE,
         );
-        
+
         $templates_list = array('-- none --');
-        
+
         foreach ($saved_templates AS $template) {
             $templates_list[$template['import_id']] = $template['name'];
             $templates_delete[$template['import_id']] = $template['name'];
         }
-        
-        $form['settings_templates']['user_import_settings'] = array( 
+        $form['settings_templates']['user_import_settings'] = array(
             '#type' => 'select',
             '#title' => t('Default Settings'),
             '#description' => t('Select if you want to use a previously saved set of settings as default for all imports.'),
             '#default_value' => variable_get('user_import_settings', 0),
             '#options' => $templates_list,
         );
-
-        
         $form['settings_templates']['templates'] = array(
             '#type' => 'checkboxes',
             '#title' => t('Delete Templates'),
             '#options' => $templates_delete,
         );
-    
+
     }
-    
+
     $check_usernames = variable_get('user_export_checked_usernames', 0);
-    
+
     $form['check_names'] = array(
         '#type' => 'fieldset',
         '#title' => t('Check Existing Usernames'),
@@ -206,409 +218,399 @@ function user_import_configure_form() { 
         '#collapsed' => empty($check_usernames) ? TRUE : FALSE,
         '#description' => t('Previous versions of User Import module may have created incorrect usernames, use this feature to check.'),
     );
-    
+
     if (!empty($check_usernames)) {
-        
+
         variable_set('user_export_checked_usernames', 0);
         $errors = user_import_usernames_invalid();
-        
+
         $form['check_names'][] = array(
             '#value' => $errors,
         );
-        
         $form['check_names'][] = array(
-            '#type' => 'submit', 
+            '#type' => 'submit',
             '#value' => t('Check'),
         );
-        
-        if ($errors != '<p><strong>' . t('All usernames are OK.') . '</strong></p>') {
+
+        if ($errors != '<p><strong>'. t('All usernames are OK.') .'</strong></p>') {
             $form['check_names'][] = array(
-                '#type' => 'submit', 
+                '#type' => 'submit',
                 '#value' => t('Delete'),
             );
         }
-        
-    } else {
-
+    }
+    else {
         $form['check_names'][] = array(
-            '#type' => 'submit', 
+            '#type' => 'submit',
             '#value' => t('Check'),
         );
     }
 
 
     $form['submit'] = array(
-        '#type' => 'submit', 
+        '#type' => 'submit',
         '#value' => t('Save'),
         );
-    
+
     return $form;
 }
 
-function user_import_configure_form_validate($form_id, &$form) {
+function user_import_configure_form_validate($form, &$form_state) {
 
-    if (is_numeric($form['user_import_max'])) {
-        if ($form['user_import_max'] < 10) form_set_error('user_import_max', t("Value should be at least 10."));       
-    } 
+    if (is_numeric($form_state['values']['user_import_max'])) {
+        if ($form_state['values']['user_import_max'] < 10) form_set_error('user_import_max', t("Value should be at least 10."));
+    }
     else {
         form_set_error('user_import_max', t('Value must be a number.'));
     }
-    
-    if (is_numeric($form['user_import_line_max'])) {
-        if ($form['user_import_line_max'] < 1000) form_set_error('user_import_line_max', t("Value must be higher than 1000."));
-        if ($form['user_import_line_max'] > 1000000) form_set_error('user_import_line_max', t("Value must be lower than 1,000,000."));
-    } 
+
+    if (is_numeric($form_state['values']['user_import_line_max'])) {
+        if ($form_state['values']['user_import_line_max'] < 1000) form_set_error('user_import_line_max', t("Value must be higher than 1000."));
+        if ($form_state['values']['user_import_line_max'] > 1000000) form_set_error('user_import_line_max', t("Value must be lower than 1,000,000."));
+    }
     else {
         form_set_error('user_import_line_max', t('Value must be a number.'));
     }
-    
+
     return;
 }
 
-function user_import_configure_form_submit($form_id, $form_values) { 
+function user_import_configure_form_submit($form, &$form_state) {
 
-    settype($form_values['user_import_max'], 'integer');
-    settype($form_values['user_import_line_max'], 'integer');
-    variable_set('user_import_max', $form_values['user_import_max']);
-    variable_set('user_import_line_max', $form_values['user_import_line_max']);
-    variable_set('user_import_settings', $form_values['user_import_settings']);
-    
-    if (!empty($form_values['templates'])) {
+    settype($form_state['values']['user_import_max'], 'integer');
+    settype($form_state['values']['user_import_line_max'], 'integer');
+    variable_set('user_import_max', $form_state['values']['user_import_max']);
+    variable_set('user_import_line_max', $form_state['values']['user_import_line_max']);
+    variable_set('user_import_settings', $form_state['values']['user_import_settings']);
 
-        foreach ($form_values['templates'] as $import_id) {
-            
+    if (!empty($form_state['values']['templates'])) {
+        foreach ($form_state['values']['templates'] as $import_id) {
             if (!empty($import_id)) {
-            
                 $template = _user_import_settings_select($import_id);
                 if (!empty($deleted)) $deleted .= ', ';
-                $deleted .= $template['name'];       
+                $deleted .= $template['name'];
                 _user_import_settings_deletion($import_id);
             }
         }
     }
-    
+
     if (!empty($deleted)) drupal_set_message(t('Settings templates deleted: @deleted', array('@deleted' => $deleted)));
-    
-    if ($form_values[op] == t('Check')) {
-       variable_set('user_export_checked_usernames', 1);
-       return;
-    }
-    
-    if ($form_values[op] == t('Delete')) {
-       user_import_usernames_invalid(TRUE);
+
+    if ($form_state['values']['op'] == t('Check')) {
+      variable_set('user_export_checked_usernames', 1);
+      return;
+    }
+
+    if ($form_state['values']['op'] == t('Delete')) {
+      user_import_usernames_invalid(TRUE);
     }
-    
+
     drupal_set_message(t('Configuration settings have been saved.'));
     drupal_goto('admin/user/user_import');
 }
 
-function user_import_add_form($import_id = NULL) {
-        
-    $form = array();
-    $ftp_files = _user_import_ftp_files();
-    user_import_add_file_form($form, $ftp_files);
-        
-    $settings = _user_import_settings_select(NULL, 'get saved');
-    
-    if ($settings) {
- 
-        $saved_settings = array(t('-- none --'));
-        foreach ($settings AS $settings_set) {
-            $saved_settings[$settings_set['import_id']] = $settings_set['name'];
-        }
-           
-        $form['import_template_select'] = array( 
-            '#type' => 'select',
-            '#title' => t('Saved Settings'),
-            '#description' => t('Select if you want to use a previously saved set of settings.'),
-            '#default_value' => variable_get('user_import_settings', 0),
-            '#options' => $saved_settings,
-        );
-        
-    } 
- 
-    $form['next'] = array(
-        '#type' => 'submit', 
-        '#value' => t('Next')
-    );    
-    
-    // Set form parameters so we can accept file uploads.
-    $form['#attributes'] = array('enctype' => 'multipart/form-data'); 
+function user_import_add_form($form_state, $import_id = NULL) {
+  $form = array();
+  $ftp_files = _user_import_ftp_files();
+  user_import_add_file_form($form, $ftp_files);
+
+  $settings = _user_import_settings_select(NULL, 'get saved');
+
+  if ($settings) {
+    $saved_settings = array(t('-- none --'));
+    foreach ($settings AS $settings_set) {
+      $saved_settings[$settings_set['import_id']] = $settings_set['name'];
+    }
+
+    $form['import_template_select'] = array(
+      '#type' => 'select',
+      '#title' => t('Saved Settings'),
+      '#description' => t('Select if you want to use a previously saved set of settings.'),
+      '#default_value' => variable_get('user_import_settings', 0),
+      '#options' => $saved_settings,
+    );
+  }
+
+  $form['next'] = array(
+    '#type' => 'submit',
+    '#value' => t('Next')
+  );
 
-    return $form;    
+  // Set form parameters so we can accept file uploads.
+  $form['#attributes'] = array('enctype' => 'multipart/form-data');
+
+  return $form;
 }
 
-function user_import_add_form_validate($form_id, $form_values) {
+function user_import_add_form_validate($form, &$form_state) {
 
-    $file = _user_import_file(NULL, $form_values['file_ftp']);
+    $file = _user_import_file(NULL, $form_state['values']['file_ftp']);
 
     // check file uploaded OK
     if (empty($file->filename)) form_set_error('file_upload', t('A file must be uploaded or selected from FTP updates.'));
-    
+
     // check file matches saved settings
-    
+
     return;
 }
 
-function user_import_add_form_submit($form_id, $form_values) {
+function user_import_add_form_submit($form, &$form_state) {
+
+    $file = _user_import_file(NULL, $form_state['values']['file_ftp']);
+    $form_state['values']['filename'] = $file->filename;
+    $form_state['values']['oldfilename'] = $file->filename;
+    $form_state['values']['filepath'] = $file->filepath;
+    $form_state['values']['setting'] = 'file set';
 
-    $file = _user_import_file(NULL, $form_values['file_ftp']);
-    $form_values['filename'] = $file->filename;
-    $form_values['oldfilename'] = $file->filename;
-    $form_values['filepath'] = $file->filepath;
-    $form_values['setting'] = 'file set';
-    
     // create import setting
-    $import = _user_import_settings_save($form_values);
-    if (!empty($form_values['import_template_select'])) $settings_template = check_plain($form_values['import_template_select']);
-    
-    drupal_goto('admin/user/user_import/add/' . $import['import_id'] . '/' . $settings_template);
-    
+    $import = _user_import_settings_save($form_state['values']);
+    if (!empty($form_state['values']['import_template_select'])) $settings_template = check_plain($form_state['values']['import_template_select']);
+
+    drupal_goto('admin/user/user_import/add/'. $import['import_id'] .'/'. $settings_template);
+
     return;
 }
 
-function user_import_edit_form($import_id, $template_id = NULL) {
-
+function user_import_edit_form($form_state, $import_id, $template_id = NULL) {
     user_import_load_supported();
     $form = array();
     $import  = _user_import_settings_select($import_id);
     $import['template_id'] = $template_id;
-    
+
     // add setting template values
     if ($import['setting'] == 'file set') $import = _user_import_initialise_import($import);
-    
+
     $form['import_id'] = array(
-        '#type' => 'value', 
+        '#type' => 'value',
         '#value' => $import_id,
     );
 
     $form['setting'] = array(
-        '#type' => 'value', 
+        '#type' => 'value',
         '#value' => $import['setting'],
     );
-    
+
     $form['return_path'] = array(
-        '#type' => 'value', 
+        '#type' => 'value',
         '#default_value' => 'admin/user/user_import',
     );
-    
+
     $form['og_id'] = array(
-        '#type' => 'value', 
+        '#type' => 'value',
         '#default_value' => 0,
     );
- 
+
     // don't use hook because these need to be added in this order;
     user_import_edit_file_fields($form, $import);
     user_import_form_field_match($form, $import);
-    
+
     $collapsed = (empty($import['name'])) ? FALSE: TRUE;
     $additional_fieldsets = module_invoke_all('user_import_form_fieldset', $import, $collapsed);
     if (is_array($additional_fieldsets)) $form = $form + $additional_fieldsets;
 
     // don't show test option if import has started
     if ($import['setting'] != 'import' && $import['setting'] != 'imported') {
- 
+
         $form['test'] = array(
-            '#type' => 'submit', 
+            '#type' => 'submit',
             '#value' => t('Test'),
             '#weight' => 100,
         );
     }
-    
+
     $form['import'] = array(
-        '#type' => 'submit', 
+        '#type' => 'submit',
         '#value' => t('Import'),
         '#weight' => 100,
     );
-    
+
     $form['cancel'] = array(
-        '#type' => 'submit', 
+        '#type' => 'submit',
         '#value' => t('Cancel'),
         '#weight' => 100,
-    ); 
+    );
 
-    return $form;  
+    return $form;
 }
 
-function user_import_edit_form_validate($form_id, $form_values) {
+function user_import_edit_form_validate($form, &$form_state) {
+
+    switch ($form_state['values']['op']) {
 
-    switch ($form_values[op]) {
-        
         case t('Remove file'):
 
-            _user_import_settings_deletion($form_values['import_id']);
-            _user_import_file_deletion($form_values['filepath'], $form_values['filename'], $form_values['oldfilename']);
-            drupal_goto ('admin/user/user_import/add');
-            
+            _user_import_settings_deletion($form_state['values']['import_id']);
+            _user_import_file_deletion($form_state['values']['filepath'], $form_state['values']['filename'], $form_state['values']['oldfilename']);
+            drupal_goto('admin/user/user_import/add');
+
             break;
-            
+
         case t('Cancel'):
 
             // if import was being added - delete file
-            if ($form_values['setting'] == 'file set') {
-                _user_import_settings_deletion($form_values['import_id']);
-                _user_import_file_deletion($form_values['filepath'], $form_values['filename'], $form_values['oldfilename']);
+            if ($form_state['values']['setting'] == 'file set') {
+                _user_import_settings_deletion($form_state['values']['import_id']);
+                _user_import_file_deletion($form_state['values']['filepath'], $form_state['values']['filename'], $form_state['values']['oldfilename']);
             }
-            drupal_goto ('admin/user/user_import');
+            drupal_goto('admin/user/user_import');
             break;
-            
+
         // save settings
         case t('Save As New'):
-        
-            $template_name = trim($form_values['new_name']);
-        
+
+            $template_name = trim($form_state['values']['new_name']);
+
         case t('Save'):
-        
-            if (empty($template_name)) $template_name = trim($form_values['name']);
-            
+
+            if (empty($template_name)) $template_name = trim($form_state['values']['name']);
+
             if (empty($template_name)) form_set_error('name', t('A name needs to be set to save this settings template.'));
-            
+
             // check settings template name is unique
             $unique_name = db_result(db_query("SELECT COUNT(import_id) FROM {user_import} WHERE name = '%s'", $template_name));
-            
+
             if (!empty($unique_name)) form_set_error('name', t("'!name' is already in use by another settings template.", array('!name' => $template_name)));
-               
+
         case t('Test'):
         case t('Import'):
         default:
 
             $fields = array();
-       
-            while (list ($row, $values) = each ($form_values['field_match'])) {
-        
+
+            while (list ($row, $values) = each ($form_state['values']['field_match'])) {
+
                 // check each field is unique
                 if ($values['field_match'] != '0' && $values['field_match'] != '-------------' && in_array($values['field_match'], $fields)) {
-                    
+
                     form_set_error('field_match', t('Database fields can only be matched to one column of the csv file.'));
                 }
-                
+
                 $fields[$values['field_match']] = $values['field_match'];
-                
+
                 // check email address has been selected
                 if ($values['field_match'] == 'user-email') $email = TRUE;
             }
-           
             if (!$email) form_set_error('email', t('One column of the csv file must be set as the email address.'));
-        
-            if ($form_values['name']) {
-               $form_values['name'] = rtrim($form_values['name']);
-               
-               if (drupal_strlen($form_values['name']) < 1 || drupal_strlen($form_values['name']) > 25) {
+
+            if ($form_state['values']['name']) {
+              $form_state['values']['name'] = rtrim($form_state['values']['name']);
+
+              if (drupal_strlen($form_state['values']['name']) < 1 || drupal_strlen($form_state['values']['name']) > 25) {
                 form_set_error('name', t('Name of saved settings must be 25 characters or less.'));
-               }
+              }
             }
             break;
     }
-    
+
     return;
 }
 
-function user_import_edit_form_submit($form_id, $form_values) {
-    
-    switch ($form_values[op]) {
-    
+function user_import_edit_form_submit($form, &$form_state) {
+
+    switch ($form_state['values']['op']) {
+
         // save settings
         case t('Save As New'):
-            $form_values['name'] = $form_values['new_name'];
-            
+            $form_state['values']['name'] = $form_state['values']['new_name'];
+
         case t('Save'):
-            
+
             // save settings for import
-            _user_import_settings_save($form_values);
-            
+            _user_import_settings_save($form_state['values']);
+
             // save settings for template
-            $import_return = 'admin/user/user_import/add/' . $form_values['import_id'];
-            $form_values['setting'] = 'template';
-            unset($form_values['import_id']);
-            _user_import_initialise_import($form_values);
-            
+            $import_return = 'admin/user/user_import/add/'. $form_state['values']['import_id'];
+            $form_state['values']['setting'] = 'template';
+            unset($form_state['values']['import_id']);
+            _user_import_initialise_import($form_state['values']);
+
             // reload settings page
-            drupal_set_message (t("'%name' was saved as a settings template.", array('%name' => $form_values['name'])));
+            drupal_set_message(t("'%name' was saved as a settings template.", array('%name' => $form_state['values']['name'])));
             return $import_return;
 
         case t('Update'):
-          
+
             // get template id
-            $template_id = db_result(db_query("SELECT import_id from {user_import} where setting = 'template' AND name= '%s' LIMIT 1", $form_values['name']));
-            
+            $template_id = db_result(db_query_range("SELECT import_id from {user_import} where setting = 'template' AND name= '%s'", $form_state['values']['name'], 0, 1));
+
             // save settings for import
-            _user_import_settings_save($form_values);
-            
+            _user_import_settings_save($form_state['values']);
+
             // save settings for template
-            $import_return = 'admin/user/user_import/add' . $form_values['import_id'];
-            $form_values['setting'] = 'template';
-            $form_values['import_id'] = $template_id;
-            _user_import_initialise_import($form_values);
-            
+            $import_return = 'admin/user/user_import/add'. $form_state['values']['import_id'];
+            $form_state['values']['setting'] = 'template';
+            $form_state['values']['import_id'] = $template_id;
+            _user_import_initialise_import($form_state['values']);
+
             // reload settings page
-            drupal_set_message (t("'%name' settings template was updated.", array('%name' => $form_values['name'])));
+            drupal_set_message(t("'%name' settings template was updated.", array('%name' => $form_state['values']['name'])));
             return $import_return;
-            
+
         case t('Test'):
-            if ($form_values['setting'] == 'file set') $filepath = file_move($form_values['filepath'], file_directory_path() . '/' . $form_values['filename']);
-            $form_values['setting'] = 'test';
+            if ($form_state['values']['setting'] == 'file set') $filepath = file_move($form_state['values']['filepath'], file_directory_path() .'/'. $form_state['values']['filename']);
+            $form_state['values']['setting'] = 'test';
             drupal_set_message(t('Tested'));
             break;
-            
+
         case t('Import'):
         default:
-            if ($form_values['setting'] == 'file set') $filepath = file_move($form_values['filepath'], file_directory_path() . '/' . $form_values['filename']);
-            if (!empty($form_values['og_id'])) $form_values['groups'][$form_values['og_id']] = $form_values['og_id'];
+            if ($form_state['values']['setting'] == 'file set') $filepath = file_move($form_state['values']['filepath'], file_directory_path() .'/'. $form_state['values']['filename']);
+            if (!empty($form_state['values']['og_id'])) $form_state['values']['groups'][$form_state['values']['og_id']] = $form_state['values']['og_id'];
+
+            $form_state['values']['setting'] = 'import';
+            drupal_set_message(t('Imported'));
+            break;
+    }
+
+    $form_state['values'] = _user_import_settings_save($form_state['values']);
 
-            $form_values['setting'] = 'import';
-            drupal_set_message (t('Imported'));
-            break;            
-    }  
-    
-    $form_values = _user_import_settings_save($form_values);
-
-    $form_values['save']['update'] = NULL;
-    $form_values['import_template_id'] = NULL;
-    $form_values['save']['name'] = NULL;
-    _user_import_process($form_values);
-    return $form_values['return_path'];
+    $form_state['values']['save']['update'] = NULL;
+    $form_state['values']['import_template_id'] = NULL;
+    $form_state['values']['save']['name'] = NULL;
+    _user_import_process($form_state['values']);
+    return $form_state['values']['return_path'];
 
 }
 
 function user_import_preconfigured($template_id = NULL, $import_id = NULL, $og_id = NULL) {
-  
+
     if (empty($template_id)) drupal_access_denied();
     $exists = db_result(db_query("SELECT COUNT(import_id) FROM {user_import} WHERE import_id = %d AND setting = 'template'", $template_id));
     if (empty($exists)) drupal_access_denied();
 
     $form = array();
-    
+
     $form['template_id'] = array(
-      '#type' => 'value', 
+      '#type' => 'value',
       '#value' => $template_id,
     );
-    
+
     $form['og_id'] = array(
-      '#type' => 'value', 
+      '#type' => 'value',
       '#value' => $og_id,
     );
-    
+
     user_import_add_file_form($form);
-    
+
     $form['next'] = array(
-        '#type' => 'submit', 
+        '#type' => 'submit',
         '#value' => t('Import Users')
-    );    
-    
+    );
+
     // Set form parameters so we can accept file uploads.
     $form['#attributes'] = array('enctype' => 'multipart/form-data');
-    
+
     if (!empty($import_id)) {
 
       // check access
       $exists = db_result(db_query("SELECT COUNT(import_id) FROM {user_import} WHERE import_id = %d", $import_id));
-      
+
       if (!empty($exists)) {
 
         $form['status'] = array(
             '#value' => '<div class="user-import-report">
-                          <h3>' . t('Import Report') . '</h3>' . 
-                          theme('user_import_limited_list', $import_id, $template_id) . 
+                          <h3>'. t('Import Report') .'</h3>'.
+                          theme('user_import_limited_list', $import_id, $template_id) .
                           '</div>',
         );
       }
@@ -617,29 +619,29 @@ function user_import_preconfigured($temp
     return $form;
 }
 
-function user_import_preconfigured_validate($form_id, $form_values) {
+function user_import_preconfigured_validate($form, &$form_state) {
 
   // check file uploaded OK
   $file = _user_import_file();
   if (empty($file->filename)) form_set_error('file_upload', t('A valid file must be selected.'));
 }
 
-function user_import_preconfigured_submit($form_id, $form_values) {
+function user_import_preconfigured_submit($form, &$form_state) {
 
   $file = _user_import_file();
 
-  $form_values['filename'] = $file->filename;
-  $form_values['oldfilename'] = $file->filename;
-  $form_values['filepath'] = $file->filepath;
-  $form_values['setting'] = 'file set';
-  
-  $import = _user_import_settings_save($form_values);
+  $form_state['values']['filename'] = $file->filename;
+  $form_state['values']['oldfilename'] = $file->filename;
+  $form_state['values']['filepath'] = $file->filepath;
+  $form_state['values']['setting'] = 'file set';
+
+  $import = _user_import_settings_save($form_state['values']);
 
   // submit the form using these values
   $form_id = 'user_import_edit_form';
-  $field_values = array('return_path' => 'user_import/' . $form_values['template_id'] . '/' . $import['import_id'] . '/' . $form_values['og_id']);
-  $field_values['og_id'] = $form_values['og_id'];
-  $errors = drupal_execute($form_id, $field_values, $import['import_id'], $form_values['template_id']);
+  $field_values = array('return_path' => 'user_import/'. $form_state['values']['template_id'] .'/'. $import['import_id'] .'/'. $form_state['values']['og_id']);
+  $field_values['og_id'] = $form_state['values']['og_id'];
+  $errors = drupal_execute($form_id, $field_values, $import['import_id'], $form_state['values']['template_id']);
   return;
 }
 
@@ -651,14 +653,14 @@ function user_import_add_file_form(&$for
         '#collapsible' => TRUE,
         '#description' => t("Upload a CSV file."),
     );
-    
+
     if (function_exists('file_upload_max_size')) $file_size = t('Maximum file size: !size MB.', array('!size' => file_upload_max_size()));
 
     $form['browser']['file_upload'] = array(
         '#type' => 'file',
         '#title' => t('CSV File'),
         '#size' => 40,
-        '#description' => t('Select the CSV file to be imported. ') . $file_size,
+        '#description' => t('Select the CSV file to be imported.') . $file_size,
     );
 
     if (!empty($ftp_files)) {
@@ -670,97 +672,96 @@ function user_import_add_file_form(&$for
           '#collapsed' => TRUE,
           '#description' => t("Any files uploaded to the 'user_import' directory using FTP can be selected for import here. Useful if the import file is too large for upload via the browser."),
       );
-      
-       $form['ftp']['file_ftp'] = array(
+
+      $form['ftp']['file_ftp'] = array(
             '#type' => 'radios',
             '#title' => t('Files'),
             '#default_value' => 0,
             '#options' => $ftp_files,
-       );
-      
+      );
+
       $form['ftp']['scan'] = array(
-          '#type' => 'button', 
+          '#type' => 'button',
           '#value' => t('Check for new files'),
       );
-        
+
     }
-    
+
     return;
 }
 
 
-// - - - - - - - -  PAGES - - - - - - - - 
+// - - - - - - - -  PAGES - - - - - - - -
 
 function user_import_preferences($import_id = NULL, $template_id = NULL) {
+  if (empty($import_id)) {
+    $output .= drupal_get_form('user_import_add_form');
+  }
+  else {
+    $output .= drupal_get_form('user_import_edit_form', $import_id, $template_id);
+  }
 
-    if (empty($import_id)) {
-        $output .= drupal_get_form('user_import_add_form');
-    } else {
-        $output .= drupal_get_form('user_import_edit_form', $import_id, $template_id);
-    }
-    
-    return $output;
+  return $output;
 }
 
 function user_import_list($action = NULL, $import_id = NULL) {
-  
+
     // clear incomplete imports
     _user_import_incomplete_deletion();
-    
+
     if (!empty($import_id) && is_numeric($import_id)) {
-		
+
       $pager_id = 1;
       $max = 25;
       $import = _user_import_settings_select($import_id);
-      
+
       $total = db_result(db_query("SELECT count(data) FROM {user_import_errors} WHERE import_id = %d", $import['import_id']));
       $results = pager_query("SELECT * FROM {user_import_errors} WHERE import_id = %d", $max, $pager_id, NULL, array($import['import_id']));
-      
+
       while ($line = db_fetch_array($results)) {
           $line['data'] = unserialize($line['data']);
           $line['errors'] = unserialize($line['errors']);
           $file_lines[] = $line;
       }
-      
+
       $output = theme('user_import_errors_display', $import, $file_lines, $total);
       $output .= theme('pager', NULL, $max, $pager_id);
-		
-    } else {
-    	
-    	$output =  theme_user_import_list();
+
+    }
+    else {
+
+      $output =  theme_user_import_list();
     }
 
-    
-    
-    return $output;    
+
+
+    return $output;
 }
 
 function user_import_continue($import_id = NULL) {
+  if (!empty($import_id) && is_numeric($import_id)) {
+    $import = _user_import_settings_select($import_id);
+    _user_import_process($import);
+  }
 
-    if (!empty($import_id) && is_numeric($import_id)) {
-        
-		$import = _user_import_settings_select($import_id);
-		_user_import_process($import);
-    }
-    
-    drupal_goto('admin/user/user_import');
+  drupal_goto('admin/user/user_import');
 }
 
 function user_import_import($import_id = NULL) {
 
     if (!empty($import_id) && is_numeric($import_id)) {
-        
-		$import = _user_import_settings_select($import_id);
-		_user_import_initialise_import($import);
+
+    $import = _user_import_settings_select($import_id);
+    _user_import_initialise_import($import);
     }
-    
+
     drupal_goto('admin/user/user_import');
 }
 
 function user_import_errors_display($import_id = NULL) {
 
   if (empty($import_id) || !is_numeric($import_id)) drupal_goto('admin/user/user_import');
-      
+
   $import = _user_import_settings_select($import_id);
   $output = theme('user_import_errors_display', $import);
   return $output;
@@ -768,35 +769,36 @@ function user_import_errors_display($imp
 
 function user_import_limited_errors($import_id = NULL, $template_id = NULL) {
 
-  if (empty($import_id) || !is_numeric($import_id)) drupal_goto('user_import/' . $template_id);
- 
+  if (empty($import_id) || !is_numeric($import_id)) drupal_goto('user_import/'. $template_id);
+
   $pager_id = 1;
   $max = 25;
   $import = _user_import_settings_select($import_id);
-  
+
   $total = db_result(db_query("SELECT count(data) FROM {user_import_errors} WHERE import_id = %d", $import['import_id']));
-  
+
   if (empty($total))  {
-  
+
     $output .= theme('There were no import errors');
-  
-  } else {
-  
+
+  }
+  else {
+
     $results = pager_query("SELECT * FROM {user_import_errors} WHERE import_id = %d", $max, $pager_id, NULL, array($import['import_id']));
-    
+
     while ($line = db_fetch_array($results)) {
 
       $line['data'] = unserialize($line['data']);
       $line['errors'] = unserialize($line['errors']);
       $file_lines[] = $line;
     }
- 
+
     $output .= theme('user_import_errors_display', $import, $file_lines, $total);
-    $output .= theme('pager', NULL, $max, $pager_id); 
+    $output .= theme('pager', NULL, $max, $pager_id);
   }
-  
+
   $output .= l(t('Return'), "user_import/$template_id/$import_id");
- 
+
   return $output;
 }
 
@@ -811,16 +813,16 @@ function user_import_errors($error = FAL
 }
 
 function user_import_limited_delete($import_id = NULL, $template_id = NULL) {
-  
+
   user_import_delete($import_id, "user_import/$template_id");
 }
 
 function user_import_delete($import_id = NULL, $return_path = 'admin/user/user_import') {
 
     if (empty($import_id) || !is_numeric($import_id)) drupal_goto($return_path);
-        
+
     $import = _user_import_settings_select($import_id);
-    
+
     _user_import_settings_deletion($import_id);
     _user_import_file_deletion($import['filepath'], $import['filename'], $import['oldfilename']);
     drupal_goto($return_path);
@@ -828,12 +830,30 @@ function user_import_delete($import_id =
 }
 
 
-// - - - - - - - -  THEMES - - - - - - - - 
+// - - - - - - - -  THEMES - - - - - - - -
+function user_import_theme() {
+  return array(
+    'user_import_list' => array(
+    ),
+    'user_import_limited_list' => array(
+      'arguments' => array('import_id' => NULL, 'template_id' => NULL)
+    ),
+    'user_import_edit_form' => array(
+      'arguments' => array('form' => NULL)
+    ),
+    'user_import_errors_display' => array(
+      'arguments' => array('settings' => NULL, 'data' => NULL, 'total' => NULL)
+    ),
+    'user_import_username_errors' => array(
+      'arguments' => array('errors' => NULL)
+    )
+  );
+}
 
 function theme_user_import_list() {
 
   $imports = _user_import_settings_select();
-  
+
   if (!$imports) return ' ';
 
   foreach ($imports as $import) {
@@ -841,11 +861,11 @@ function theme_user_import_list() {
       // header labels
       $import_label = ($import['setting'] == 'tested' || $import['setting'] == 'test') ? t('importable') : t('imported');
       $header = array(t('file'), t('started'), t('processed'), $import_label, t('errors'), t('status'));
-                  
+
       // info row
-      $errors = db_result(db_query("SELECT COUNT(import_id) FROM {user_import_errors} WHERE import_id = %d", $import['import_id']));         
-      $errors_link = ($errors == 0) ? '0': l($errors, 'admin/user/user_import/errors/' . $import['import_id']);           
-      
+      $errors = db_result(db_query("SELECT COUNT(import_id) FROM {user_import_errors} WHERE import_id = %d", $import['import_id']));
+      $errors_link = ($errors == 0) ? '0': l($errors, 'admin/user/user_import/errors/'. $import['import_id']);
+
       $rows[0] = array(
           check_plain($import['oldfilename']),
           format_date($import['started'], 'small'),
@@ -854,21 +874,21 @@ function theme_user_import_list() {
           array("data" => $errors_link, "align" => 'center'),
           $import['setting'],
       );
-      
+
       $output .= theme('table', $header, $rows);
-      
+
       // action buttons
-      $settings_link = l(t('Settings'), 'admin/user/user_import/add/' . $import['import_id']);
-      $delete_link = l(t('Delete'), 'admin/user/user_import/delete/' . $import['import_id']);
-      $continue_link = l(t('Continue Processing'), 'admin/user/user_import/continue/' . $import['import_id']);
-      $import_link = l(t('Import'), 'admin/user/user_import/import/' . $import['import_id']);
-      
-      $output .= $settings_link  . ' | ';   
-      $output .= $delete_link;   
-      if ($import['setting'] == 'tested' || $import['setting'] == 'test') $output .= ' | ' . $import_link;
-      if ($import['setting'] == 'test' || $import['setting']  == 'import') $output .= ' | ' . $continue_link;
-  } 
-  
+      $settings_link = l(t('Settings'), 'admin/user/user_import/add/'. $import['import_id']);
+      $delete_link = l(t('Delete'), 'admin/user/user_import/delete/'. $import['import_id']);
+      $continue_link = l(t('Continue Processing'), 'admin/user/user_import/continue/'. $import['import_id']);
+      $import_link = l(t('Import'), 'admin/user/user_import/import/'. $import['import_id']);
+
+      $output .= $settings_link  .' | ';
+      $output .= $delete_link;
+      if ($import['setting'] == 'tested' || $import['setting'] == 'test') $output .= ' | '. $import_link;
+      if ($import['setting'] == 'test' || $import['setting']  == 'import') $output .= ' | '. $continue_link;
+  }
+
   return $output;
 }
 
@@ -881,11 +901,11 @@ function theme_user_import_limited_list(
   // header labels
   $import_label = ($import['setting'] == 'tested' || $import['setting'] == 'test') ? t('importable') : t('imported');
   $header = array(t('file'), t('started'), t('processed'), $import_label, t('errors'), t('status'));
-              
+
   // info row
-  $errors = db_result(db_query("SELECT COUNT(import_id) FROM {user_import_errors} WHERE import_id = %d", $import['import_id']));         
-  $errors_link = ($errors == 0) ? '0': l($errors, 'user_import/errors/' . $import_id . '/' . $template_id);           
-  
+  $errors = db_result(db_query("SELECT COUNT(import_id) FROM {user_import_errors} WHERE import_id = %d", $import['import_id']));
+  $errors_link = ($errors == 0) ? '0': l($errors, 'user_import/errors/'. $import_id .'/'. $template_id);
+
   $rows[0] = array(
       check_plain($import['oldfilename']),
       format_date($import['started'], 'small'),
@@ -894,26 +914,26 @@ function theme_user_import_limited_list(
       array("data" => $errors_link, "align" => 'center'),
       $import['setting'],
   );
-  
+
   $output .= theme('table', $header, $rows);
-  
+
   // action buttons
-  $delete_link = l(t('Remove Info'), 'user_import/delete/' . $import_id . '/' . $template_id);
-  $continue_link = l(t('Continue Processing'), 'user_import/continue/' . $import_id . '/' . $template_id);
-  $import_link = l(t('Import'), 'user_import/import/' . $import_id . '/' . $template_id);
-  
-  $output .= $delete_link;   
-  if ($import['setting'] == 'tested' || $import['setting'] == 'test') $output .= ' | ' . $import_link;
-  if ($import['setting'] == 'test' || $import['setting']  == 'import') $output .= ' | ' . $continue_link;
+  $delete_link = l(t('Remove Info'), 'user_import/delete/'. $import_id .'/'. $template_id);
+  $continue_link = l(t('Continue Processing'), 'user_import/continue/'. $import_id .'/'. $template_id);
+  $import_link = l(t('Import'), 'user_import/import/'. $import_id .'/'. $template_id);
+
+  $output .= $delete_link;
+  if ($import['setting'] == 'tested' || $import['setting'] == 'test') $output .= ' | '. $import_link;
+  if ($import['setting'] == 'test' || $import['setting']  == 'import') $output .= ' | '. $continue_link;
+
 
-  
   return $output;
 }
 
 function theme_user_import_edit_form($form) {
-    
+
     $header = array(t('csv column'), t('Drupal fields'), t('username'), t('abbreviate'));
-    
+
     foreach (element_children($form['field_match']) as $key) {
 
         $rows[] = array(
@@ -923,7 +943,7 @@ function theme_user_import_edit_form($fo
             drupal_render($form['field_match'][$key]['abbreviate']),
         );
     }
-    
+
     $form['field_match']['#value'] = theme('table', $header, $rows);
 
     $output .= drupal_render($form['remove']);
@@ -935,111 +955,105 @@ function theme_user_import_edit_form($fo
 
 function theme_user_import_errors_display($settings, $data, $total) {
 
-    $error_count = 0;
-    $field_match = _user_import_unconcatenate_field_match($settings['field_match']);
-    $header[0] = t('Email Address');
-
-    foreach ($data as $data_row) {
-
-        $row = NULL;
-        
-        foreach ($data_row['data'] as $type => $fields) {
-   
-          if (!empty($fields)) {
-          
-            foreach ($fields as $field_id => $field_data) {
-  
-              foreach ($field_match as $column_info) {
-              
-                if ($column_info['type'] ==  $type && $column_info['field_id'] == $field_id) {
-                  
-                  if (!empty($column_info['username'])) { 
-                    $header[$column_info['username']] = t('Name %sort', array('%sort' => $column_info['username']));
-                    $row[$column_info['username']] = array("data" => $field_data[0], "align" => "left");
-                  }
-                  
-                  if ($column_info['field_id'] == 'email') { 
-                    $row[0] = array("data" => $field_data[0], "align" => "left");
-                  }
-                }
+  $error_count = 0;
+  $field_match = _user_import_unconcatenate_field_match($settings['field_match']);
+  $header[0] = t('Email Address');
+
+  foreach ($data as $data_row) {
+    $row = NULL;
+
+    foreach ($data_row['data'] as $type => $fields) {
+      if (!empty($fields)) {
+        foreach ($fields as $field_id => $field_data) {
+          foreach ($field_match as $column_info) {
+            if ($column_info['type'] ==  $type && $column_info['field_id'] == $field_id) {
+              if (!empty($column_info['username'])) {
+                $header[$column_info['username']] = t('Name %sort', array('%sort' => $column_info['username']));
+                $row[$column_info['username']] = array("data" => $field_data[0], "align" => "left");
+              }
+              if ($column_info['field_id'] == 'email') {
+                $row[0] = array("data" => $field_data[0], "align" => "left");
               }
-            
-            } 
-          }  
+            }
+          }
         }
-  
-        ksort($row);
-        $row[] = implode('<br />', $data_row['errors']);
-        $rows[] = $row;
-    }
-    
-    $output .= '<p>' . t('<strong>CSV File:</strong> %file', array('%file' => $settings['oldfilename'])) . '<br />';
-    $output .= t('<strong>Errors:</strong> !total', array('!total' => $total)) . '</p>';
+      }
+    }
 
-    $header['errors'] = t('Errors');
-    $output .= theme('table', $header, $rows);    
-    return $output;
+    ksort($row);
+
+    if ($data_row['errors'] !== false ) {
+      $row[] = 'User exists and "Update account" is not enabled.';
+    }
+    $rows[] = $row;
+  }
+
+  $output .= '<p>'. t('<strong>CSV File:</strong> %file', array('%file' => $settings['oldfilename'])) .'<br />';
+  $output .= t('<strong>Errors:</strong> !total', array('!total' => $total)) .'</p>';
+
+  $header['errors'] = t('Errors');
+  $output .= theme('table', $header, $rows);
+  return $output;
 }
 
 function theme_user_import_username_errors($errors) {
-    
+
     if (empty($errors)) {
-        $output = '<p><strong>' . t('All usernames are OK.') . '</strong></p>';
-    } else {
+        $output = '<p><strong>'. t('All usernames are OK.') .'</strong></p>';
+    }
+    else {
         $header = array(t('User ID'), t('Email'), t('Username'), t('Error'));
         $output = theme('table', $header, $errors);
     }
-    
+
     return $output;
 }
 
-// - - - - - - - -  MISC - - - - - - - - 
+// - - - - - - - -  MISC - - - - - - - -
 
 function user_import_edit_file_fields(&$form, $import) {
-    
-    $form['filename'] = array(
-        '#type' => 'value',
-        '#value' => $import['filename'],
-    );
-    
-    $form['oldfilename'] = array(
-        '#type' => 'value',
-        '#value' => $import['oldfilename'],
-    );
-    
-    $form['filepath'] = array(
-        '#type' => 'value',
-        '#value' => $import['filepath'],
-    );
-    
-    return;
+  $form['filename'] = array(
+    '#type' => 'value',
+    '#value' => $import['filename'],
+  );
+
+  $form['oldfilename'] = array(
+    '#type' => 'value',
+    '#value' => $import['oldfilename'],
+  );
+
+  $form['filepath'] = array(
+    '#type' => 'value',
+    '#value' => $import['filepath'],
+  );
+
+  return;
 }
 
 function user_import_form_field_match(&$form, $import) {
-
   $collapsed = (empty($import['name'])) ? FALSE: TRUE;
   $handle = _user_import_file_open($form['filepath']['#value'], $form['filename']['#value']);
   $data_row = _user_import_file_row($form['filename']['#value'], $handle);
-  
+
   $fieldmatch_description = t("Match columns in CSV file to profile fields, leave as '----' if there is no match.");
-  $fieldmatch_description .= '<br /><strong>' . t('Username') . ': </strong>' . t("The Username will be built from CSV columns in the order selected.");
-  $fieldmatch_description .= '<br /><strong>' . t('Abbreviate') . ': </strong>' . t("Use the first letter of a field in uppercase for the Username, e.g. 'john' -> 'J'.");
-  $fieldmatch_description .= '<br />' . t("If no CSV fields are selected, the Username will be randomly generated.");
-  
+  $fieldmatch_description .= '<br /><strong>'. t('Username') .': </strong>'. t("The Username will be built from CSV columns in the order selected.");
+  $fieldmatch_description .= '<br /><strong>'. t('Abbreviate') .': </strong>'. t("Use the first letter of a field in uppercase for the Username, e.g. 'john' -> 'J'.");
+  $fieldmatch_description .= '<br />'. t("If no CSV fields are selected, the Username will be randomly generated.");
+
   $form['field_match'] = array(
       '#type' => 'fieldset',
       '#title' => t('Field Match'),
       '#description' => $fieldmatch_description,
       '#weight' => -90,
       '#collapsible' => TRUE,
-      '#collapsed' => $collapsed, 
+      '#collapsed' => $collapsed,
       '#tree' => TRUE,
   );
 
   // add default and email address options
   $user_fields[0] = '-------------';
   $additional_user_fields = module_invoke_all('user_import_form_field_match');
-  
+
   foreach ($additional_user_fields as $type => $type_options) {
 
     foreach ($type_options as $field_id => $label) {
@@ -1051,60 +1065,60 @@ function user_import_form_field_match(&$
 
   $row = 0;
   $sort = array(t('no'), 1, 2, 3, 4);
-  
-  if (empty($data_row)) return; 
-    
-  foreach ($data_row as $data_cell) {        
+
+  if (empty($data_row)) return;
+
+  foreach ($data_row as $data_cell) {
 
       $form['field_match'][$row]= array(
           '#tree' => TRUE,
       );
- 
-      $form['field_match'][$row]['csv'] = array( 
+
+      $form['field_match'][$row]['csv'] = array(
           '#value' => check_plain(drupal_substr($data_cell, 0, 40)),
       );
-  
-      $form['field_match'][$row]['field_match'] = array( 
+
+      $form['field_match'][$row]['field_match'] = array(
           '#type' => 'select',
           '#default_value' => ($import['field_match'][$row]['field_match']) ? $import['field_match'][$row]['field_match'] : $user_fields[0],
           '#options' => $user_fields,
       );
 
-      $form['field_match'][$row]['username'] = array( 
+      $form['field_match'][$row]['username'] = array(
           '#type' => 'select',
           '#default_value' => ($import['field_match'][$row]['username']) ? $import['field_match'][$row]['username'] : $sort[0],
           '#options' => $sort,
       );
-      
-      $form['field_match'][$row]['abbreviate'] = array( 
+
+      $form['field_match'][$row]['abbreviate'] = array(
           '#type' => 'checkbox',
           '#default_value' => ($import['field_match'][$row]['abbreviate']) ? $import['field_match'][$row]['abbreviate'] : NULL,
       );
 
       $row++;
   }
- 
+
   return;
 }
- 
+
 function _user_import_create_username($order, $data, $abbreviate, $username_space) {
-    
+
     if (is_array($order)) {
-    
+
       asort($order);
       reset($order);
 
       $username = '';
 
       while (list ($file_column, $sequence) = each ($order)) {
-          
+
           if (!empty($username) && !empty($username_space)) $username .= ' ';
           $username .= ($abbreviate[$file_column] == 1) ? trim(drupal_strtoupper(chr(ord($data[$file_column])))) : trim($data[$file_column]);
       }
     }
-    
+
     if (empty($username)) $username = _user_import_random_username();
-    
+
     $username = _user_import_sanitise_username($username);
     $username = _user_import_unique_username($username);
     return $username;
@@ -1114,57 +1128,58 @@ function _user_import_create_username($o
  *  conform to Drupal username rules
  */
 function _user_import_sanitise_username($username) {
-  
-	// username cannot contain an illegal character
-	$username = preg_replace('/[^a-zA-Z0-9@ ]/', ' ', $username);
-	// username cannot contain multiple spaces in a row
-	$username = preg_replace('/[ ]+/', ' ', $username);   
-
-	// username must be less than 56 characters
-	$username = substr($username, 0, 56);
-
-	// username cannot begin or end with a space
-	$username = trim($username); 
-	return $username;
+
+  // username cannot contain an illegal character
+  $username = preg_replace('/[^a-zA-Z0-9@ ]/', ' ', $username);
+  // username cannot contain multiple spaces in a row
+  $username = preg_replace('/[ ]+/', ' ', $username);
+
+  // username must be less than 56 characters
+  $username = drupal_substr($username, 0, 56);
+
+  // username cannot begin or end with a space
+  $username = trim($username);
+  return $username;
 }
 
 /**
- *  deal with duplicate usernames 
+ *  deal with duplicate usernames
  */
 function _user_import_unique_username($username) {
 
-	static $suffix = 1;
-	
-	if ($suffix < 2) {
-		$duplicate = db_result(db_query("SELECT uid from {users} where name = '%s' LIMIT 1", $username));
-	}
-	else {
-		$duplicate = db_result(db_query("SELECT uid from {users} where name = '%s' LIMIT 1", "$username $suffix"));
-	}
-
-	// loop until name is valid 
-	if (!empty($duplicate)) {
-	  $suffix++;
-	  _user_import_unique_username($username);
-	}
-	
-	// add number at end of username if it already exists
-	$username = ($suffix < 2) ? $username : "$username $suffix";
-	return $username;
+  static $suffix = 1;
+
+  if ($suffix < 2) {
+    $duplicate = db_result(db_query_range("SELECT uid from {users} where name = '%s'", $username, 0, 1));
+  }
+  else {
+    $usern = $username .' '. $suffix;
+    $duplicate = db_result(db_query_range("SELECT uid from {users} where name = '%s'", $usern, 0, 1));
+  }
+
+  // loop until name is valid
+  if (!empty($duplicate)) {
+    $suffix++;
+    _user_import_unique_username($username);
+  }
+
+  // add number at end of username if it already exists
+  $username = ($suffix < 2) ? $username : "$username $suffix";
+  return $username;
 }
 
 function _user_import_profile($key = 'fid', $return_value = NULL) {
-    
-    if (!module_exists('profile')) return; 
-    
+
+    if (!module_exists('profile')) return;
+
     static $fields_static;
-    
+
     // avoid making more than one database call for profile info
     if (empty($fields_static)) {
-    
+
         $results = db_query("SELECT * FROM {profile_fields}");
-                
-        while ($row = db_fetch_object($results)) { 
+
+        while ($row = db_fetch_object($results)) {
             // don't include private fields
             if (user_access('administer users') || $row->visibility != PROFILE_PRIVATE) {
                 $fields_static[] = $row;
@@ -1173,26 +1188,26 @@ function _user_import_profile($key = 'fi
     }
 
     if (empty($fields_static)) return;
-   
+
     // return all profile fields info, or just specific type
     if (empty($return_value)) {
-        
+
         foreach ($fields_static as $field) {
             $fields[$field->{$key}] = $field;
         }
-    } 
+    }
     else {
         foreach ($fields_static as $field) {
             $fields[$field->{$key}] = $field->{$return_value};
         }
     }
-    
-    asort($fields);    
+
+    asort($fields);
     return $fields;
 }
 
 function _user_import_settings_save($settings) {
- 
+
     // move settings into 'options' column
     // 'options' column will be used to store new control options - instead of creating a new column for each option
     $settings['options']['groups'] = $settings['groups'];
@@ -1200,73 +1215,68 @@ function _user_import_settings_save($set
     $settings['options']['existing_og_subject'] = $settings['existing_og_subject'];
     $settings['options']['existing_og_markup'] = $settings['existing_og_markup'];
     $settings['options']['existing_og_message'] = $settings['existing_og_message'];
-    $settings['options']['existing_og_css'] = $settings['existing_og_css'];   
+    $settings['options']['existing_og_css'] = $settings['existing_og_css'];
 
     $settings['options']['subject'] = $settings['subject'];
     $settings['options']['message'] = $settings['message'];
     $settings['options']['message_format'] = $settings['message_format'];
     $settings['options']['message_css'] = $settings['message_css'];
-    
+
     $settings['options']['activate'] = $settings['activate'];
     $settings['options']['subscribed'] = $settings['subscribed'];
     $settings['options']['update_users'] = $settings['update_users'];
-    
+
     // Update settings for existing import
     if ($settings['import_id']) {
-    
-        db_query("UPDATE {user_import} 
-            SET name = '%s', filename = '%s', oldfilename = '%s', filepath = '%s', pointer = %d, processed = %d, valid= %d, first_line_skip = %d, contact = %d, username_space = %d, send_email = %d, field_match = '%s', roles = '%s', options = '%s', setting = '%s' 
+
+        db_query("UPDATE {user_import}
+            SET name = '%s', filename = '%s', oldfilename = '%s', filepath = '%s', pointer = %d, processed = %d, valid= %d, first_line_skip = %d, contact = %d, username_space = %d, send_email = %d, field_match = '%s', roles = '%s', options = '%s', setting = '%s'
             WHERE import_id = %d
             ", trim($settings['name']), $settings['filename'], $settings['oldfilename'], $settings['filepath'], $settings['pointer'], $settings['processed'], $settings['valid'], $settings['first_line_skip'], $settings['contact'], $settings['username_space'], $settings['send_email'], serialize($settings['field_match']), serialize($settings['roles']), serialize($settings['options']), $settings['setting'], $settings['import_id']);
-        
+
         // Save settings for new import
-    } 
+    }
     else {
-    
-        db_query("INSERT INTO {user_import} 
-            (name, filename, oldfilename, filepath, started, pointer, processed, valid, first_line_skip, contact, username_space, send_email, field_match, roles, options, setting) 
+
+        db_query("INSERT INTO {user_import}
+            (name, filename, oldfilename, filepath, started, pointer, processed, valid, first_line_skip, contact, username_space, send_email, field_match, roles, options, setting)
             VALUES ('%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, '%s', '%s', '%s', '%s')
             ", trim($settings['name']), $settings['filename'], $settings['oldfilename'], $settings['filepath'], time(), $settings['pointer'], $settings['processed'], $settings['valid'], $settings['first_line_skip'], $settings['contact'], $settings['username_space'], $settings['send_email'], serialize($settings['field_match']), serialize($settings['roles']), serialize($settings['options']), $settings['setting']);
-            
+
         $settings['import_id'] = db_result(db_query("SELECT LAST_INSERT_ID()"));
     }
-    
+
     return $settings;
 }
 
-// Update settings for existing import 
+// Update settings for existing import
 function _user_import_settings_update($pointer, $processed, $valid, $setting, $import_id) {
 
-	if (empty($import_id)) return;
-	db_query("UPDATE {user_import} SET pointer = %d, processed = %d, valid= %d, setting = '%s' WHERE import_id = %d", $pointer, $processed, $valid, $setting, $import_id);
+  if (empty($import_id)) return;
+  db_query("UPDATE {user_import} SET pointer = %d, processed = %d, valid= %d, setting = '%s' WHERE import_id = %d", $pointer, $processed, $valid, $setting, $import_id);
 }
 
 function _user_import_errors_display_save($import_id, $data, $email, $errors) {
-
-    $data['email'] = $email;
-
-    db_query("INSERT INTO {user_import_errors} 
-        (import_id, data, errors) 
-        VALUES (%d, '%s', '%s')
-        ", $import_id, serialize($data), serialize($errors));
-     return;
+  $data['email'] = $email;
+  db_query("INSERT INTO {user_import_errors} (import_id, data, errors) VALUES (%d, '%s', '%s')", $import_id, serialize($data), serialize($errors));
+  return;
 }
 
 function _user_import_settings_select($import_id = NULL, $template = FALSE) {
-         
+
     if (!empty($import_id) && !is_numeric($import_id)) return;
-    
+
     if (!empty($import_id)) {
-    
-        $import = db_fetch_array(db_query("SELECT * FROM {user_import} WHERE import_id = %d LIMIT 1", $import_id));
+
+        $import = db_fetch_array(db_query_range("SELECT * FROM {user_import} WHERE import_id = %d", $import_id, 0, 1));
         $import['field_match'] = unserialize($import['field_match']);
         $import['roles'] = unserialize($import['roles']);
         $import['options'] = unserialize($import['options']);
-    
-    } 
+
+    }
     else {
-        
-        $query = ($template) ? "SELECT * FROM {user_import} WHERE setting = 'template'" : "SELECT * FROM {user_import} WHERE setting != 'template' ORDER BY started DESC";
+
+        $query = ($template) ? "SELECT * FROM {user_import} WHERE setting = 'template'" : "SELECT * FROM {user_import} WHERE setting <> 'template' ORDER BY started DESC";
         $results = db_query($query);
         while ($row = db_fetch_array($results)) {
             $row['field_match'] = unserialize($row['field_match']);
@@ -1275,8 +1285,8 @@ function _user_import_settings_select($i
             $import[] = $row;
         }
     }
-      
-    return $import;      
+
+    return $import;
 }
 
 function _user_import_settings_deletion($import_id) {
@@ -1291,44 +1301,44 @@ function _user_import_random_username() 
     $vowels = 'aoueiy';
     $consonants = 'bcdfghjklmnpqrstvwxz';
     $length = 8;
-    
-    mt_srand ((double) microtime() * 10000000);
+
+    mt_srand((double) microtime() * 10000000);
     $next_vowel = 0;
-    
+
     for ($count = 0; $count <= $length; $count++) {
 
         if ($next_vowel) {
             $rand = mt_rand(0, 5);
-            $username.= $vowels{$rand};
+            $username .= $vowels{$rand};
             $next_vowel = 0;
-    
-        } 
+
+        }
         else {
             $rand = mt_rand(0, 19);
             $username .= $consonants{$rand};
             $next_vowel = 1;
         }
     }
-    
+
     return $username;
 }
 
 // Clean file - in case of incompatable line endings
 function _user_import_file_cleaner($filepath) {
 
-    $file = fopen($filepath,'r+');
-    while (!feof($file )){
-       $line = chop(fgets($file,4096));
-       $return = ereg_replace(chr(13) . chr(10), "\n", $line);
-       $return = ereg_replace(chr(13), "\n", $return);
-       fwrite($file, $return);
+    $file = fopen($filepath, 'r+');
+    while (!feof($file)) {
+      $line = chop(fgets($file, 4096));
+      $return = ereg_replace(chr(13) . chr(10), "\n", $line);
+      $return = ereg_replace(chr(13), "\n", $return);
+      fwrite($file, $return);
     }
-    
+
     fclose($file);
     return;
 }
-	
-function _user_import_process($settings) {	
+
+function _user_import_process($settings) {
 
     user_import_load_supported();
     $line_max = variable_get('user_import_line_max', 1000);
@@ -1336,15 +1346,16 @@ function _user_import_process($settings)
     $field_match = _user_import_unconcatenate_field_match($settings['field_match']);
 
     $handle = @fopen($settings['filepath'], "r");
-    
+
     // move pointer to where test/import last finished
     if ($settings['pointer'] != 0) fseek ($handle, $settings['pointer']);
-  
+
     // start count of imports on this cron run
     $send_counter = 0;
-    
+    $password = '';
+    $fields = '';
     while ($data = fgetcsv($handle, $line_max, ',')) {
-    
+
         $errors = user_import_errors(FALSE, TRUE);
 
         // if importing, check we are not over max number of imports per cron
@@ -1355,9 +1366,9 @@ function _user_import_process($settings)
 
         // don't process empty lines
         $line_filled = (count($data) == 1 && drupal_strlen($data[0]) == 0) ? FALSE : TRUE;
-        
+
         if ($line_filled) {
-        
+
             // check if this is first line - if so should we skip?
             if (!empty($settings['first_line_skip']) && $settings['processed'] == 0) {
                 // reset to false on second process
@@ -1381,7 +1392,7 @@ function _user_import_process($settings)
                     }
                     // Read in data if present for concatenating a user name.
                     if ($column_settings['username'] > 0) {
-                            
+
                         $username_data[$column_id] = $data[$column_id];
                         $username_order[$column_id] = $column_settings['username'];
                         $username_abbreviate[$column_id]= $column_settings['abbreviate'];
@@ -1392,72 +1403,77 @@ function _user_import_process($settings)
                 $errors = user_import_errors();
                 $account = array();
 
+                if ($fields['user']['delete'][0] == 'yes') {
+                  $existing = user_load(array('mail' => $fields['user']['email'][0]));
+                  user_delete($existing, $existing->uid);
+                  continue;
+                }
+
                 $account_additions = module_invoke_all('user_import_pre_save', $settings, $account, NULL, $fields, $errors);
 
-                foreach($account_additions as $field_name => $value) {
+                foreach ($account_additions as $field_name => $value) {
                   $account[$field_name] = $value;
-                } 
+                }
 
                 if (empty($errors)) {
                     if ($settings['setting'] == 'import') {
                         // If we update existing users matched by email (and
                         // therefore passed validation even if this email
                         // already exists), look for and use an existing account.
-                        if (!empty($settings['options']['update_users']) && $existing = user_load(array('mail' => $account['mail']))) {
 
-													$account = user_save($existing, $account);
+                        if (!empty($settings['options']['update_users']) && $existing = user_load(array('mail' => $account['mail']))) {
+                          $account = user_save($existing, $account);
                         }
                         else {
                           // Only set a user name if we are not updating an existing record.
                           $account['name'] = _user_import_create_username($username_order, $username_data, $username_abbreviate, $settings['username_space']);
                           $account = user_save('', $account);
                         }
-
-                     		module_invoke_all('user_import_after_save', $settings, $account, $password, $fields);
+                        module_invoke_all('user_import_after_save', $settings, $account, $password, $fields);
                         $send_counter++;
                     }
-                
+
                     $settings['valid']++;
                 }
-            
+
                 $settings['processed']++;
             }
-       
+
             $settings['pointer'] = ftell($handle);
-        
+
             // save lines that have fatal errors
             if (!empty($errors)) _user_import_errors_display_save($settings['import_id'], $fields, $account['email'], $errors);
         }
     }
-    
-    fclose ($handle);
+
+    fclose($handle);
     if ($settings['setting'] == 'import' && !$finished) $settings['setting'] = 'imported';
     if ($settings['setting'] == 'test') $settings['setting'] = 'tested';
-		_user_import_settings_update($settings['pointer'], $settings['processed'], $settings['valid'], $settings['setting'], $settings['import_id']);  
+    _user_import_settings_update($settings['pointer'], $settings['processed'], $settings['valid'], $settings['setting'], $settings['import_id']);
     return $settings;
 }
 
 function user_import_usernames_invalid($delete = NULL) {
-    
-    $users = db_query("SELECT uid, name, mail from {users} WHERE uid != 0 AND uid != 1");
-    
+
+    $users = db_query("SELECT uid, name, mail from {users} WHERE uid <> 0 AND uid <> 1");
+
     while ($user = db_fetch_object($users)) {
-        
+
         $error = user_validate_name($user->name);
-        
+
         if (!empty($error)) {
             $errors[$user->uid]['uid'] = $user->uid;
             $errors[$user->uid]['mail'] = $user->mail;
             $errors[$user->uid]['name'] = $user->name;
             $errors[$user->uid]['error'] = $error;
-            
+
             if (!empty($delete)) {
-                $form_values['account'] = $user;
-                user_confirm_delete_submit($form_id, $form_values);
+                $form_state['values']['account'] = $user;
+                user_confirm_delete_submit($form, $form_state['values']);
             }
         }
     }
-    
+
     $output = theme('user_import_username_errors', $errors);
     return $output;
 }
@@ -1465,12 +1481,12 @@ function user_import_usernames_invalid($
 function _user_import_file_deletion($filepath, $filename, $old_filename, $message = TRUE) {
 
     $removed = file_delete($filepath);
-    
+
     if (!$message) return;
-    
+
     if (empty($removed)) {
-        drupal_set_message(t("File error: file '%old_filename' (%filename) could not be deleted.", array('%old_filename' => $oldfilename, '%filename' => $filename)), 'error');
-    } 
+        drupal_set_message(t("File error: file '%old_filename' (%filename) could not be deleted.", array('%old_filename' => $old_filename, '%filename' => $filename)), 'error');
+    }
     else {
         drupal_set_message(t("File '%old_filename' was deleted.", array('%old_filename' => $old_filename)));
     }
@@ -1486,7 +1502,7 @@ function _user_import_initialise_import(
         case 'imported':
             drupal_set_message(t('File has already been imported'), 'error');
             break;
-       
+
         // add setting template values to new import settings
         case 'file set':
             if (empty($import['template_id'])) return $import;
@@ -1498,7 +1514,7 @@ function _user_import_initialise_import(
             $template['started'] = 0;
             $template['setting'] = 'file set';
             return $template;
-            
+
         case 'test':
         case 'tested':
             $import['setting'] = 'import';
@@ -1510,7 +1526,7 @@ function _user_import_initialise_import(
             _user_import_settings_save($import);
             _user_import_process($import);
             break;
-            
+
         case 'template':
             unset($import['filename']);
             unset($import['oldfilename']);
@@ -1521,13 +1537,13 @@ function _user_import_initialise_import(
             $import['valid'] = 0;
             _user_import_settings_save($import);
             break;
-            
+
         default:
             _user_import_process($import);
             drupal_set_message(t('Imported'));
             break;
     }
-    
+
     return;
 }
 
@@ -1537,79 +1553,78 @@ function _user_import_errors_display_del
     return;
 }
 
-/*
-// File being used
-// $import_id - use file info stored in database
-// $ftp_file - chosen from FTP uploaded files
-// $uploaded_file - uploaded through browser
-*/
-function _user_import_file($import_id = NULL, $ftp_file_selected = NULL) { 
-
-    static $file;
-    if ( !empty($file) ) return $file;
-    
-    // file was uploaded through browser
-    $file = file_check_upload('file_upload');
-    if ( !empty($file) ) return $file;
-    
-    // file was uploaded by FTP
-    if ( !empty($ftp_file_selected) ) { 
-    
-        $ftp_files = _user_import_ftp_files();
-        $filepath = drupal_get_path('module', 'user_import');
-        $filename = $ftp_files[$ftp_file_selected];
-        $file->filepath = "$filepath/$filename";
-        $file->filename = $filename;
-        return $file;
-    }
-    
-   // use file info stored in database
-   if (!empty($import_id)) {
-        $import = _user_import_settings_select($import_id);
-        $file->filepath = $import['filepath'];
-        $file->oldfilename = $import['oldfilename'];
-        $file->filename = $import['filename'];
-        return $file;
-   }
-    
-    return;   
+/**
+ * File being used
+ * $import_id - use file info stored in database
+ * $ftp_file - chosen from FTP uploaded files
+ * $uploaded_file - uploaded through browser
+ */
+
+function _user_import_file($import_id = NULL, $ftp_file_selected = NULL) {
+
+  static $file;
+  if ( !empty($file) ) return $file;
+
+  // file was uploaded through browser
+  $file = file_save_upload('file_upload', array());
+  if ( !empty($file) ) return $file;
+
+  // file was uploaded by FTP
+  if ( !empty($ftp_file_selected) ) {
+    $ftp_files = _user_import_ftp_files();
+    $filepath = drupal_get_path('module', 'user_import');
+    $filename = $ftp_files[$ftp_file_selected];
+    $file = new stdClass();
+    $file->filepath = "$filepath/$filename";
+    $file->filename = $filename;
+    return $file;
+  }
+
+  // use file info stored in database
+  if (!empty($import_id)) {
+    $import = _user_import_settings_select($import_id);
+    $file->filepath = $import['filepath'];
+    $file->oldfilename = $import['oldfilename'];
+    $file->filename = $import['filename'];
+    return $file;
+  }
+
+  return;
 }
 
 // open file
 function _user_import_file_open($filepath, $filename) {
-    
-    static $handle;
-    if (!empty($handle)) return $handle;
-    
-    $handle = @fopen($filepath, "r");
-                        
-    if (!$handle) {
-        form_set_error('file', t("Could not find the csv file '%filename'", array('%filename' => $filename)), 'error');
-        return t("Please add your file again.");
-    }
-    return $handle;
+  static $handle;
+  if (!empty($handle)) return $handle;
+
+  $handle = @fopen($filepath, "r");
+
+  if (!$handle) {
+    form_set_error('file', t("Could not find the csv file '%filename'", array('%filename' => $filename)), 'error');
+    return t("Please add your file again.");
+  }
+  return $handle;
 }
 
 // get first row of file
 function _user_import_file_row($filename, $handle) {
-    
-    $data_row = @fgetcsv ($handle, 1000000, ",");
-    if (!$data_row) {
-        form_set_error('file', t("Could not get data, the file '%filename' is either empty or has incompatible line endings.", array('%filename' => $filename)), 'error');
-    }
-    return $data_row;
+  $data_row = @fgetcsv ($handle, 1000000, ",");
+  if (!$data_row) {
+    form_set_error('file', t("Could not get data, the file '%filename' is either empty or has incompatible line endings.", array('%filename' => $filename)), 'error');
+  }
+  return $data_row;
 }
 
 // get info on files  uploaded via FTP
 function _user_import_ftp_files() {
-  
+
   $directory = opendir( drupal_get_path('module', 'user_import') );
   $filenames[] = t('none');
-  
+
   while ($file = readdir($directory)) {
     if ($file != '.' && $file != '..' && $file != '.DS_Store' && $file != 'CVS' && $file != '.svn' && $file != 'README.txt' && $file != 'UPDATES.txt' && $file != 'user_import.module' && $file != 'user_import.mysql' && $file != 'user_import.install' && $file != 'user_import.info' && $file != 'supported') $filenames[] = $file;
   }
-  
+
   closedir($directory);
   return $filenames;
 }
@@ -1617,33 +1632,30 @@ function _user_import_ftp_files() {
 // delete incomplete import settings, where only the file has been uploaded
 function  _user_import_incomplete_deletion() {
 
-    $results =db_query("SELECT * FROM {user_import} WHERE setting = 'file set'");
-    
-    while ($import = db_fetch_object($results)) {
-    
-        _user_import_file_deletion($import->filepath, $import->filename, $import->oldfilename, FALSE);
-        _user_import_settings_deletion($import->import_id);
-    }
-    
-    return;
+  $results =db_query("SELECT * FROM {user_import} WHERE setting = 'file set'");
+
+  while ($import = db_fetch_object($results)) {
+    _user_import_file_deletion($import->filepath, $import->filename, $import->oldfilename, FALSE);
+    _user_import_settings_deletion($import->import_id);
+  }
+
+  return;
 }
 
 // get info of existing groups
 function user_import_get_groups() {
+  $og_type = variable_get('og_node_types', array('og'));
 
-    $og_type = variable_get('og_node_types', array('og'));
+  $results = db_query("SELECT
+                     n.nid, n.title FROM {node} n INNER JOIN {og} og ON n.nid = og.nid
+                     WHERE n.status = 1 AND n.type IN ('%s')
+                     ORDER BY n.title", $og_type);
 
-     $results = db_query("SELECT 
-                     n.nid, n.title FROM {node} n INNER JOIN {og} og ON n.nid = og.nid 
-                     WHERE n.status = 1 AND n.type IN ('%s')  
-                     ORDER BY n.title", $og_type);           
-                
-    while ($group = db_fetch_object($results)) {
-    
-      $groups[$group->nid] = $group->title;
-    }
-    
-    return $groups;
+  while ($group = db_fetch_object($results)) {
+    $groups[$group->nid] = $group->title;
+  }
+
+  return $groups;
 }
 
 /*
@@ -1654,33 +1666,33 @@ CRUFT ??
 function _user_import_organic_groups($groups_selected, $uid) {
 
     if (!module_exists('og')) return;
-     
+
     $organic_groups = user_import_get_groups();
     if(empty($organic_groups)) return;
-    
+
     $og_args = array('is_active' => 1, 'is_admin' => 0, 'mail_type' => 0, 'created' => time());
 
     while(list($gid, $title) = each($organic_groups)) {
-    
+
         if (!empty($groups_selected[$gid])) og_save_subscription($gid, $uid, $og_args);
     }
-    
+
     return;
 }
 
 
-*/
+ */
 
 
 function user_import_profile_string($prefix = ',') {
 
-    if (!module_exists('profile')) return;
-    
-    $profile_fields = _user_import_profile('fid', 'name');
-    
-    if (!empty($profile_fields)) $profile_string = ', !' . implode($prefix .' !', $profile_fields);
+  if (!module_exists('profile')) return;
+
+  $profile_fields = _user_import_profile('fid', 'name');
 
-    return $profile_string;
+  if (!empty($profile_fields)) $profile_string = ', !'. implode($prefix .' !', $profile_fields);
+
+  return $profile_string;
 }
 
 function user_import_profile_load($user) {
@@ -1688,14 +1700,14 @@ function user_import_profile_load($user)
   $result = db_query('SELECT f.name, f.type, f.fid, v.value FROM {profile_fields} f INNER JOIN {profile_values} v ON f.fid = v.fid WHERE uid = %d', $user->uid);
 
   while ($field = db_fetch_object($result)) {
-  
+
     if (empty($profile[$field->fid])) {
-      
+
       $profile[$field->fid] = _profile_field_serialize($field->type) ? unserialize($field->value) : $field->value;
     }
-    
+
   }
-  
+
   return $profile;
 }
 
@@ -1703,7 +1715,7 @@ function _user_import_unconcatenate_fiel
 
   $settings_updated = array();
   foreach ($settings as $column_id => $values) {
-    
+
     if (!empty($values['field_match']) || !empty($values['username'])) {
       // If we have a username but no field_match, set a special type.
       // This allows us to skip saving the field but still use it in
@@ -1721,7 +1733,7 @@ function _user_import_unconcatenate_fiel
       $settings_updated[$column_id] = $values;
     }
   }
-  
+
   return $settings_updated;
 }
 
@@ -1731,7 +1743,7 @@ function _user_import_unconcatenate_fiel
 function _user_import_existing_uid($email) {
   static $uid;
   if (!isset($uid[$email])) {
-    $uid[$email] = db_result(db_query("SELECT uid from {users} where mail= '%s' LIMIT 1", $email));
+    $uid[$email] = db_result(db_query_range("SELECT uid from {users} where mail= '%s'", $email, 0, 1));
   }
   return $uid[$email];
 }
@@ -1742,7 +1754,7 @@ function _user_import_existing_uid($emai
 function user_import_load_supported() {
   static $loaded = FALSE;
   if (!$loaded) {
-    $path = drupal_get_path('module', 'user_import') . '/supported';
+    $path = drupal_get_path('module', 'user_import') .'/supported';
     $files = drupal_system_listing('.*\.inc$', $path, 'name', 0);
     foreach ($files as $module_name => $file) {
       if (module_exists($module_name)) {
@@ -1752,8 +1764,3 @@ function user_import_load_supported() {
     $loaded = TRUE;
   }
 }
-
-
-
-
-
