diff --git a/simplenews_scheduler.module b/simplenews_scheduler.module
index 79ec77c..8d4dd4a 100644
--- a/simplenews_scheduler.module
+++ b/simplenews_scheduler.module
@@ -12,6 +12,7 @@
  * NEWSLETTER SEND COMMAND
  */
 define('SIMPLENEWS_COMMAND_SEND_SCHEDULE', 3);
+define('SIMPLENEWS_COMMAND_SEND_NONE', 4);
 
 /**
  * Implementation of hook_theme().
@@ -41,11 +42,14 @@ function simplenews_scheduler_menu() {
  */
 function simplenews_scheduler_form_alter(&$form, &$form_state, $form_id) {
   global $user;
-  // if this is an edition, then we should be fiddling with it, only the parent.
-  $node = node_load(arg(1));
-  if($node->simplenews_scheduler_edition) {
-    drupal_set_message(t('You have been redirected to the original newsletter'));
-    drupal_goto('node/'.$node->simplenews_scheduler_edition['pid'].'/simplenews');
+  
+  if(arg(0) == 'node') {
+    // if this is an edition, then we should be fiddling with it, only the parent.
+    $node = node_load(arg(1));
+    if(isset($node->simplenews_scheduler_edition)) {
+      drupal_set_message(t('You have been redirected to the original newsletter'));
+      drupal_goto('node/'.$node->simplenews_scheduler_edition['pid'].'/simplenews');
+    }
   }
   
   // Add schedule settings to the newsletter edit form.
@@ -55,11 +59,7 @@ function simplenews_scheduler_form_alter(&$form, &$form_state, $form_id) {
     // Set the default values.
     $form['#submit'][]="simplenews_scheduler_submit";
 
-    $result = db_query("SELECT * FROM {simplenews_scheduler} WHERE nid = %d", arg(1));
-    $row = db_fetch_array($result);
-    if ($row) {
-      $scheduler = $row;
-    }
+    $scheduler = simplenews_scheduler_get_scheduler(arg(1));
     
     $form['simplenews']['send']['#options'][SIMPLENEWS_COMMAND_SEND_SCHEDULE] = t('Send newsletter according to schedule');
     $form['simplenews']['send']['#default_value'] = ($scheduler['activated'] == 1) ? SIMPLENEWS_COMMAND_SEND_SCHEDULE : variable_get('simplenews_send', SIMPLENEWS_COMMAND_SEND_NONE);
@@ -80,15 +80,18 @@ function simplenews_scheduler_form_alter(&$form, &$form_state, $form_id) {
       $date_start = $scheduler['start_date'] ? $scheduler['start_date'] : time();
       // and Mon, 30 Dec 2013 23:59:59 GMT for stop, that should be enough.
       $date_stop = $scheduler['stop_date'] ? $scheduler['stop_date'] : 1388447999;
-      // Convert dates to valid date objects.
-      if ($form['#node']->build_mode == 1) {
-        $date_start = date_make_date($date_start, NULL, DATE_DATETIME);
-        $date_stop = date_make_date($date_stop, NULL, DATE_DATETIME);
+      if(isset($form['#node'])) {
+        // Convert dates to valid date objects.
+        if ($form['#node']->build_mode == 1) {
+          $date_start = date_make_date($date_start, NULL, DATE_DATETIME);
+          $date_stop = date_make_date($date_stop, NULL, DATE_DATETIME);
+        }
       }
       else {
         $date_start = date_make_date($date_start, date_default_timezone_name(), DATE_UNIX);
         $date_stop = date_make_date($date_stop, date_default_timezone_name(), DATE_UNIX);
       }
+      
       // Translate formatted date results.
       $date_str_start = date_format_date($date_start, 'custom', 'Y-m-d H:i');
       $date_str_stop = date_format_date($date_stop, 'custom', 'Y-m-d H:i');
@@ -100,7 +103,7 @@ function simplenews_scheduler_form_alter(&$form, &$form_state, $form_id) {
       $form['simplenews']['scheduler']['stop'] = array('#type' => 'radios', '#title' => t('Stop sending'), '#default_value' => $scheduler['stop'] ? $scheduler['stop'] : 0, '#options' => array(t('Never'), t('On a given date'), t('After a maximum number of editions')), '#attributes' => array('class' => 'simplenews-command-stop'));
       $form['simplenews']['scheduler']['stop_date'] = array('#type' => 'date_select', '#default_value' => $date_str_stop, '#date_type' => DATE_DATETIME, '#date_format' => 'm-d-Y - H:i', '#date_timezone' => date_default_timezone_name(), '#date_label_position' => 'none', '#date_increment' => 1, '#date_year_range' => '2010:+3', '#required' => TRUE);
       $form['simplenews']['scheduler']['stop_edition'] = array('#type' => 'textfield', '#default_value' => $scheduler['stop_edition'] ? $scheduler['stop_edition'] : 0, '#size' => 5, '#maxlength' => 5, '#required' => TRUE, '#description' => t('The maximum number of editions which should be sent.'));
-      $form['simplenews']['scheduler']['php_eval'] = array('#type' => 'textarea', '#title' => t('Additionally only create newsletter edition if the following code returns true'), '#default_value' => $scheduler['php_eval'], '#required' => FALSE, '#description' => t('Additionally evaluate the following PHP code and only issue the newsletter edition if it returns true. Do not include <?PHP ?>'));
+      $form['simplenews']['scheduler']['php_eval'] = array('#type' => 'textarea', '#title' => t('Additionally only create newsletter edition if the following code returns true'), '#default_value' => $scheduler['php_eval'], '#required' => FALSE, '#description' => t('Additionally evaluate the following PHP code and only issue the newsletter edition if it returns true. Do not include &lt;?PHP ?&gt;'));
       $form['simplenews']['scheduler']['activated'] = array('#type' => 'hidden', '#value' => $scheduler['activated']);
     }
     else {
@@ -128,6 +131,18 @@ function simplenews_scheduler_form_alter(&$form, &$form_state, $form_id) {
   }
 }
 
+function simplenews_scheduler_get_scheduler($nid) {
+  $result = db_query("SELECT * FROM {simplenews_scheduler} WHERE nid = %d", arg(1));
+  $row = db_fetch_array($result);
+  
+  if ($row) {
+    $scheduler = $row;
+  } else {
+    $scheduler = array('interval'=>false, 'start_date' => false, 'stop_date' => false, 'stop_edition' => false, 'php_eval' =>false, 'activated' => false);
+  }
+  
+  return $scheduler;
+}
 function simplenews_scheduler_submit($form, &$form_state) {
   
   $nid = $form_state['values']['nid'];  
@@ -154,7 +169,7 @@ function simplenews_scheduler_submit($form, &$form_state) {
   // Convert the user time back to GMT time and use that as our record.
   $start_date = date_convert($start_date, DATE_DATETIME, DATE_UNIX, date_default_timezone_name());
   $stop_date = date_convert($stop_date, DATE_DATETIME, DATE_UNIX, date_default_timezone_name());
-  if (! $node->is_edition) {
+  if (! isset($node->is_edition )) {
     $result = db_query("INSERT INTO {simplenews_scheduler} (nid, activated, interval, 
                            start_date, stop, stop_date, stop_edition, php_eval ) 
                              VALUES (%d, %d, '%s', %d, %d, %d, %d, '%s')                             
@@ -169,7 +184,9 @@ function simplenews_scheduler_submit($form, &$form_state) {
  * Implementation of hook_nodeapi().
  */
 function simplenews_scheduler_nodeapi(&$node, $op) {
-  if ($node->nid && in_array($node->type, variable_get('simplenews_content_types', array('simplenews')))) {
+
+
+  if (isset($node->nid) && in_array($node->type, variable_get('simplenews_content_types', array('simplenews')))) {
     switch ($op) {
       case 'load' :
         $result = db_query("SELECT * FROM {simplenews_scheduler} WHERE nid = %d", $node->nid);
@@ -279,6 +296,8 @@ function simplenews_scheduler_get_newsletter_accounts($newsletter_tid) {
 function simplenews_scheduler_node_page($node) {
   drupal_set_title(t('Scheduled newsletter editions'));
   $nid = _simplenews_scheduler_get_pid($node);
+  $output = "";
+
   // This is the original newsletter.
   if ($nid == $node->nid) {
     $output .= '<p>' . t('This is the original newsletter of which all editions are based on.') . '</p>';
@@ -287,12 +306,15 @@ function simplenews_scheduler_node_page($node) {
   else {
     $output .= '<p>' . t('This node is part of a scheduled newsletter configuration. View the original newsletter <a href="@parent">here</a>.', array('@parent' => url('node/' . $nid))) . '</p>';
   }
+
   // Load the corresponding editions from the database to further process.
+
   $result = pager_query("SELECT * FROM {simplenews_scheduler_editions} sse LEFT JOIN {node} n ON n.nid = sse.pid WHERE sse.pid = %d", 20, 0, NULL, $nid);
   while ($row = db_fetch_object($result)) {
     $node = node_load($row->eid);
     $rows[] = array(format_date($row->date_issued, 'custom', 'Y-m-d H:i'), l($node->title, 'node/' . $row->eid));
   }
+
   // Display a table with all editions.
   if (! empty($rows)) {
     $output .= theme('table', array(t('Date sent'), t('Node')), $rows, array('class' => 'schedule_history'));
@@ -386,12 +408,14 @@ function _simplenews_scheduler_new_edition($nid) {
  * Helper fucntion to get the identifier of newsletter.
  */
 function _simplenews_scheduler_get_pid($node) {
+
+  $nid = false;
   // First assume this is a newsletter edition,
-  if ($node->simplenews_scheduler_edition) {
+  if (isset($node->simplenews_scheduler_edition)) {
     $nid = $node->simplenews_scheduler_edition['pid'];
   }
   // or this itself is the parent newsletter.
-  elseif ($node->simplenews_scheduler) {
+  elseif (isset($node->simplenews_scheduler)) {
     $nid = $node->nid;
   }
   
