--- civicrm_activeuser.module.php	2009-04-06 17:40:23.000000000 -0500
+++ civicrm_activeuser.module	2009-04-06 18:16:28.000000000 -0500
@@ -26,7 +26,7 @@ function civicrm_activeuser_menu() {
     'title' => t('CiviCRM Active User'),
     'description' => t('Add a user to CiviCRM group on Drupal login.'),
     'page callback' => 'drupal_get_form',
-    'page arguments' => 'civicrm_activeuser_admin_settings',
+    'page arguments' => array('civicrm_activeuser_admin_settings'),
     'access arguments' => array('administer site configuration'),
     'type' => MENU_NORMAL_ITEM, // optional
   );
@@ -37,18 +37,20 @@ function civicrm_activeuser_menu() {
  * Implementation of hook_settings().
  */
 function civicrm_activeuser_admin_settings() {
-  civicrm_initialize(true);
+  civicrm_initialize();
+  require_once('api/v2/Group.php');
   $options = array();
   $params = array();
   $return_properties = array('id', 'title');
-  $groups = crm_get_groups($params, $return_properties);
+  $groups =& civicrm_group_get($params);
 
-  $options[0] = '-- Select One --';
+  if (!$groups['is_error']) {
   foreach ($groups as $group) {
-    $options[$group->id] = $group->title;
+    $options[$group['id']] = $group['title'];
   }
   asort($options);
-
+  }
+  
   $form['civicrm_activeuser_group'] = array(
     '#type' => 'select',
     '#title' => t('Active Users Group'),
@@ -66,10 +68,15 @@ function civicrm_activeuser_user($op, $e
   if ($op == 'login') {
     $group_id = variable_get('civicrm_activeuser_group', 0);
     if ($group_id) { /* make sure that the group is set */
-      civicrm_initialize(true);
+      civicrm_initialize();
+      require_once('api/v2/Group.php');
+      require_once('api/v2/Contact.php');
+	  require_once('api/v2/GroupContact.php');
+	  
       global $user;
       $params = array('email' => $user->mail);
-      $contact =& crm_get_contact($params);
+      $contacts =& civicrm_contact_search($params);
+	  $contact = array_shift($contacts);
 
       /* NOTE: don't use document error checking:
        *
@@ -81,28 +88,24 @@ function civicrm_activeuser_user($op, $e
        */
       /* NOTE: civicrm_activeuser is too long for watchdog() */
 
-      if ($contact && isset($contact->id)) {
+      if ($contact && isset($contact['contact_id'])) {
         $params = array('id' => $group_id);
-        $groups =& crm_get_groups($params);
+        $groups =& civicrm_group_get($params);
         if ($groups && count($groups) == 1) {
-          $group = $groups[0];
-          $contacts = array($contact);
-          if ($error = crm_add_group_contacts($group, $contacts)) {
-            foreach ($error->_errors as $err) {
-              $msgs[] = $err['code'] .': '. $err['message'];
-            }
-            $params = array('@msgs' => implode('; ', $msgs));
-            watchdog('civicrm', 'CiviCRM error: @msgs', $params);
+          $group = array_shift($groups);
+          //$contacts = array($contact);
+          $params = array('group_id' => $group_id, 'contact_id' => $contact['contact_id']);
+          $group_added = civicrm_group_contact_add($params);
+          if ($group_added['is_error'] == 1) {
+            watchdog('civicrm_activeuser', 'Failed to add %user to group.', array('%user' => $user->name));
           }
         }
         else {
-          $params = array('@id' => $group_id);
-          watchdog('civicrm', 'CiviCRM group not found for @id', $params);
+          watchdog('civicrm', 'CiviCRM group not found for %id', array('%id' => $group_id));
         }
       }
       else {
-        $params = array('%email' => $user->mail);
-        watchdog('civicrm', 'CiviCRM contact not found for %email', $params);
+        watchdog('civicrm', 'CiviCRM contact not found for %email', array('%email' => $user->mail));
       }
     }
   }
