Index: stormteam/stormteam.module
===================================================================
--- stormteam/stormteam.module	(revision 764)
+++ stormteam/stormteam.module	(working copy)
@@ -285,35 +285,24 @@
   
   $options = $options + array(-2 => t('-ORGANIZATIONS-')) + $organizations;
   
-  $i = 1;
-  $variable = 'members_array_'. $i;
-  
-  // Add rows for existing team members
-  if (isset($node->members_array) && is_array($node->members_array)) {
-    foreach ($node->members_array as $node->$variable => $name) {
-      $form['group1'][$variable] = array(
-        '#type' => 'select',
-        '#title' => t('Team Member @num', array('@num' => $i)),
-        '#options' => $options,
-        '#default_value' => $node->$variable,
-      );
-      $i++;
-      $variable = 'members_array_'. $i;
-    }
+  $default = array();
+  if (!empty($node->members_array)) {
+    $default = array_keys($node->members_array);
   }
   
-  // Add placeholder rows
-  for ($j = 0; $j < 3; $j++) {
-    $variable = 'members_array_'. $i;
-    $form['group1'][$variable] = array(
-      '#type' => 'select',
-      '#title' => t('Team Member @num', array('@num' => $i)),
-      '#options' => $options,
-      '#default_value' => $node->$variable,
-    );
-    $i++;
-  }
+  $form['group1']['members_array'] = array(
+    '#type' => 'select',
+    '#title' => t('Team Member @num', array('@num' => $i)),
+    '#options' => $options,
+    '#default_value' => $default,
+    '#multiple' => TRUE,
+  );
   
+  $form['group1']['member_options'] = array(
+    '#type' => 'value',
+    '#value' => $options,
+  );
+    
   if ($type->has_body) {
     $form['body_field'] = node_body_field($node, $type->body_label, $type->min_word_count);
   }
@@ -356,20 +345,20 @@
  * Function to be called internally before saving Storm Team nodes
  */
 function _stormteam_beforesave(&$node) {
-  $i = 1;
-  $variable = 'members_array_'. $i;
-
-  while (isset($node->$variable)) {
-    $title = db_fetch_object(db_query('SELECT n.title FROM {node} AS n WHERE nid = %d', $node->$variable));
-    $node->members_array[$node->$variable] = $title->title;
-    $i++;
-    $variable = 'members_array_'. $i;
-  }
   
-  if (array_key_exists(0, $node->members_array)) {
-    unset($node->members_array[0]);
+  if (!empty($node->members_array)) {
+    foreach ($node->members_array as $team_nid) {
+      
+      if (!empty($node->member_options)) {
+        $node->members_array[$team_nid] = $node->member_options[$team_nid];
+      }
+      else {
+        $title = db_fetch_object(db_query('SELECT n.title FROM {node} AS n WHERE nid = %d', $team_nid));
+        $node->members_array[$team_nid] = $title->title;
+      }
+    }
   }
-  
+
   $node->members = serialize($node->members_array);
 }
 
