diff -urpN ../storm/stormteam/stormteam.module ./stormteam/stormteam.module
--- ../storm/stormteam/stormteam.module	2010-09-09 18:16:37.000000000 -0400
+++ ./stormteam/stormteam.module	2011-01-28 15:56:48.303824000 -0500
@@ -315,7 +315,7 @@ function stormteam_form(&$node) {
       '#type' => 'select',
       '#title' => t('Team Member @num', array('@num' => $i)),
       '#options' => $options,
-      '#default_value' => $node->$variable,
+      '#default_value' => (isset($node->$variable)) ? $node->$variable : NULL,
     );
     $i++;
   }
@@ -326,7 +326,7 @@ function stormteam_form(&$node) {
   
   $form['title_old'] = array(
     '#type' => 'hidden',
-    '#default_value' => $node->title_old,
+    '#default_value' => (isset($node->title_old)) ? $node-title_old : NULL,
   );
   
   return $form;
@@ -338,7 +338,9 @@ function stormteam_form(&$node) {
  */
 function stormteam_load($node) {
   $additions = db_fetch_object(db_query('SELECT * FROM {stormteam} WHERE vid = %d', $node->vid));
-  $additions->members_array = unserialize($additions->members);
+  if (isset($additions->members)) {
+    $additions->members_array = unserialize($additions->members);
+  }
   $additions->title_old = $node->title;
   return $additions;
 }
@@ -347,7 +349,7 @@ function stormteam_load($node) {
  * @function
  * Implementation of hook_view
  */
-function stormteam_view($node) {
+function stormteam_view($node, $teaser, $page) {
   $breadcrumb = array(
     l('Storm', 'storm'),
     l('Teams', 'storm/teams'),
@@ -367,16 +369,19 @@ function _stormteam_beforesave(&$node) {
 
   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;
+    if (!empty($title)) {
+      $node->members_array[$node->$variable] = $title->title;
+    }
     $i++;
     $variable = 'members_array_'. $i;
   }
+  if (isset($node->members_array)) {
+    if (array_key_exists(0, $node->members_array)) {
+      unset($node->members_array[0]);
+    }
   
-  if (array_key_exists(0, $node->members_array)) {
-    unset($node->members_array[0]);
+    $node->members = serialize($node->members_array);
   }
-  
-  $node->members = serialize($node->members_array);
 }
 
 /**
@@ -385,11 +390,13 @@ function _stormteam_beforesave(&$node) {
  */
 function stormteam_insert($node) {
   _stormteam_beforesave($node);
-  db_query("INSERT INTO {stormteam}
-    (vid, nid, members) VALUES 
-    (%d, %d, '%s')",
-    $node->vid, $node->nid, $node->members
-  );
+  if (isset($node->vid) && (isset($node->nid)) && (isset($node->members))) {
+    db_query("INSERT INTO {stormteam}
+      (vid, nid, members) VALUES
+      (%d, %d, '%s')",
+      $node->vid, $node->nid, $node->members
+    );
+  }
 }
 
 /**
diff -urpN ../storm/stormteam/stormteam.test ./stormteam/stormteam.test
--- ../storm/stormteam/stormteam.test	1969-12-31 19:00:00.000000000 -0500
+++ ./stormteam/stormteam.test	2011-01-28 15:51:56.173840000 -0500
@@ -0,0 +1,30 @@
+<?php
+class StormteamTestCase extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => t('Storm Team Functionality'),
+      'description' => t('Test the functionality of the Storm Team module'),
+      'group' => 'Storm',
+    );
+  }
+
+  public function setUp() {
+    parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormperson', 'stormteam');
+  }
+
+  public function testStormteamCreate() {
+    // Create and login user
+    $user = $this->drupalCreateUser(array('Storm team: add', 'Storm team: view all', 'Storm person: add', 'Storm person: view all'));
+    $this->drupalLogin($user);
+
+    // Create a team
+    $team = array(
+      'title' => $this->randomName(32),
+    );
+
+    $this->drupalPost('node/add/stormteam', $team, t('Save'));
+
+    $this->assertText(t('Team @title has been created.', array('@title' => $team['title'])));;
+  }
+}
