diff --git a/modules/uc_recurring_subscription/uc_recurring_subscription.admin.inc b/modules/uc_recurring_subscription/uc_recurring_subscription.admin.inc
index 0fbf651..485cf98 100644
--- a/modules/uc_recurring_subscription/uc_recurring_subscription.admin.inc
+++ b/modules/uc_recurring_subscription/uc_recurring_subscription.admin.inc
@@ -191,7 +191,7 @@ function uc_recurring_subscription_product_form($form, $form_state, $product_id
   );
   $form['recurring']['trial']['trial_interval_value'] = array(
     '#type' => 'textfield',
-    '#default_value' => $trial_product->initial_charge_value,
+    '#default_value' => isset($trial_product->initial_charge_value) ? $trial_product->initial_charge_value : '',
     '#size' => 2,
     '#prefix' => '<div class="subscription-interval-value">',
     '#suffix' => '</div>',
@@ -204,7 +204,7 @@ function uc_recurring_subscription_product_form($form, $form_state, $product_id
       'months' => t('month(s)'),
       'years' => t('year(s)'),
     ),
-    '#default_value' => $trial_product->initial_charge_unit,
+    '#default_value' => isset($trial_product->initial_charge_unit) ? $trial_product->initial_charge_unit : '',
     '#prefix' => '<div class="subscription-interval-period">',
     '#suffix' => '</div>',
   );
@@ -274,7 +274,7 @@ function uc_recurring_subscription_product_form($form, $form_state, $product_id
       '#type' => 'select',
       '#options' => $roles,
       '#multiple' => TRUE,
-      '#default_value' => $node->subscription->access['subscribe_grant'],
+      '#default_value' => isset($node->subscription->access['subscribe_grant']) ? $node->subscription->access['subscribe_grant'] : NULL,
       '#attributes' => array('class' => array('role-option')), 
       '#parents' => array('access', 0, 'subscribe_grant'),
     );
@@ -282,7 +282,7 @@ function uc_recurring_subscription_product_form($form, $form_state, $product_id
       '#type' => 'select',
       '#options' => $roles,
       '#multiple' => TRUE,
-      '#default_value' => $node->subscription->access['expire_grant'],
+      '#default_value' => isset($node->subscription->access['expire_grant']) ? $node->subscription->access['expire_grant'] : NULL,
       '#attributes' => array('class' => array('role-option')),
       '#parents' => array('access', 0, 'expire_grant'),
     );
@@ -290,7 +290,7 @@ function uc_recurring_subscription_product_form($form, $form_state, $product_id
       '#type' => 'select',
       '#options' => $roles,
       '#multiple' => TRUE,
-      '#default_value' => $node->subscription->access['expire_revoke'],
+      '#default_value' => isset($node->subscription->access['expire_revoke']) ? $node->subscription->access['expire_revoke'] : NULL,
       '#attributes' => array('class' => array('role-option')),
       '#parents' => array('access', 0, 'expire_revoke'),
     );
@@ -622,7 +622,7 @@ function uc_recurring_subscription_product_form_submit(&$form, &$form_state) {
             $subscription->access[$access] = $value;
           }
         }
-        $key = $subscription->new == TRUE ? NULL : 'nid';
+        $key = (isset($subscription->new) && $subscription->new == TRUE) ? NULL : 'nid';
         drupal_write_record('uc_recurring_subscription', $subscription, $key);
 
         // add/update the recurring features
@@ -896,7 +896,7 @@ function theme_uc_recurring_subscription_item($variables) {
       continue;
     }
     // Add class to group weight fields for drag and drop.
-    $form[$key]['weight']['#attributes']['class'] = 'recurring-weight';
+    $form[$key]['weight']['#attributes']['class'] = array('recurring-weight');
 
     $rows[] = array(
       'data' => array(
