diff --git a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/includes/views/state_flow_handler_field_events.inc b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/includes/views/state_flow_handler_field_events.inc
index f35cd14..68ebee5 100644
--- a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/includes/views/state_flow_handler_field_events.inc
+++ b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/includes/views/state_flow_handler_field_events.inc
@@ -12,11 +12,13 @@ class state_flow_handler_field_events extends views_handler_field {
   function render($values) {
     $state_node = node_load($values->nid);
     $state_state_flow = state_flow_load_state_machine($state_node);
-    $state_events = $state_state_flow->get_available_events();
     $state_actions = array();
-    foreach ($state_events as $event) {
-      if (state_flow_access($state_node, $event)) {
-        $state_actions[] = l(drupal_ucfirst(t($event)), 'node/' . $state_node->nid . '/revisions/' . $state_node->vid . '/workflow/' . $event, array('query' => array('destination' => $_GET['q']))) . ' ';
+    if (!$state_state_flow) {
+      $state_events = $state_state_flow->get_available_events();
+      foreach ($state_events as $event) {
+        if (state_flow_access($state_node, $event)) {
+          $state_actions[] = l(drupal_ucfirst(t($event)), 'node/' . $state_node->nid . '/revisions/' . $state_node->vid . '/workflow/' . $event, array('query' => array('destination' => $_GET['q']))) . ' ';
+        }
       }
     }
     $state_actions_str = implode(' | ', $state_actions);
diff --git a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/plugins/state_flow.inc b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/plugins/state_flow.inc
index 24844cb..3efd9e4 100644
--- a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/plugins/state_flow.inc
+++ b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/plugins/state_flow.inc
@@ -203,7 +203,7 @@ class StateFlow extends StateMachine {
         $rev_node = $rev_vid ? node_load($this->object->nid, $rev_vid) : FALSE;
         if ($rev_node) {
           $rev_state = state_flow_load_state_machine($rev_node, TRUE);
-          $rv = $rev_state->fire_event('unpublish', NULL, t('Unpublished due to the publication of revision @vid.', array('@vid' => $this->object->vid)));
+          $rv = $rev_state ? $rev_state->fire_event('unpublish', NULL, t('Unpublished due to the publication of revision @vid.', array('@vid' => $this->object->vid))) : FALSE;
         }
       }
     }
diff --git a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.admin.inc b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.admin.inc
index 1f6c425..18a8e98 100644
--- a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.admin.inc
+++ b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.admin.inc
@@ -165,7 +165,11 @@ function state_flow_admin_nodes() {
     foreach ($rows as $row) {
       $node = node_load($row->nid, $row->vid);
       $key = "{$node->nid}:::{$node->vid}";
-      $state = state_flow_load_state_machine($node)->get_label_for_current_state();
+      $machine = state_flow_load_state_machine($node);
+      if (!$machine) {
+        continue;
+      }
+      $state = $machine->get_label_for_current_state();
       $options[$key] = array(
         'title' => array(
           'data' => array(
diff --git a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.module b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.module
index c85d8c9..5dd2924 100644
--- a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.module
+++ b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.module
@@ -149,8 +149,11 @@ function state_flow_node_presave($node) {
   // state_flow_promote_node_revision(), then check its current state.
   if (!empty($node->nid) && empty($node->state_flow_ignore_state)) {
     $state_flow = state_flow_load_state_machine($node);
+    if (!$state_flow) {
+      return;
+    }
 
-    //Check to see if we should go through workflow
+    // Check to see if we should go through workflow
     if (empty($node->stateflow_skip_workflow)) {
       $state = $state_flow->get_current_state();
       if ($state == 'published') {
@@ -178,8 +181,10 @@ function state_flow_node_presave($node) {
 function state_flow_node_insert($node) {
   global $user;
   $state_flow = state_flow_load_state_machine($node);
-  $state_flow->persist();
-  $state_flow->write_history($user->uid);
+  if ($state_flow) {
+    $state_flow->persist();
+    $state_flow->write_history($user->uid);
+  }
 }
 
 /**
@@ -188,8 +193,11 @@ function state_flow_node_insert($node) {
 function state_flow_node_update($node) {
   global $user;
   $state_flow = state_flow_load_state_machine($node);
+  if (!$state_flow) {
+    return;
+  }
 
-  //Check to see if we should go through workflow
+  // Check to see if we should go through workflow
   if (empty($node->stateflow_skip_workflow)) {
     if (!empty($node->state_flow_revert_draft) && $state_flow->get_current_state() !== 'draft') {
       $state_flow->fire_event('to draft');
@@ -283,7 +291,7 @@ function state_flow_access($node, $event_name, $account = NULL) {
  */
 function state_flow_entity_get_state($data, $options, $name, $type, $info) {
   $state_flow = state_flow_load_state_machine($data);
-  return $state_flow->get_current_state();
+  return $state_flow ? $state_flow->get_current_state() : NULL;
 }
 
 /**
@@ -336,7 +344,9 @@ function state_flow_get_all_states() {
       $i++;
       $node->type = $type_key;
       $state_machine = state_flow_load_state_machine($node);
-      $states += $state_machine->get_states_options();
+      if ($state_machine) {
+        $states += $state_machine->get_states_options();
+      }
     }
   }
 
@@ -358,7 +368,9 @@ function state_flow_get_all_events() {
       $i++;
       $node->type = $type_key;
       $state_machine = state_flow_load_state_machine($node);
-      $events += array_keys($state_machine->get_all_events());
+      if ($state_machine) {
+        $events += array_keys($state_machine->get_all_events());
+      }
     }
   }
 
@@ -646,10 +658,12 @@ function state_flow_operation_change_helper($info, $event) {
 
   $node = node_load($info['nid'], $info['vid']);
   $state_machine = state_flow_load_state_machine($node);
-  $allowed_events = $state_machine->get_available_events();
-  if (in_array($event, $allowed_events)) {
-    $state_machine->fire_event($event, $user->uid, 'State changed via Bulk Node Operation');
-    return t('@title has been transitioned to @state', array('@title' => $node->title, '@state' => $state_machine->get_label_for_current_state()));
+  if ($state_machine) {
+    $allowed_events = $state_machine->get_available_events();
+    if (in_array($event, $allowed_events)) {
+      $state_machine->fire_event($event, $user->uid, 'State changed via Bulk Node Operation');
+      return t('@title has been transitioned to @state', array('@title' => $node->title, '@state' => $state_machine->get_label_for_current_state()));
+    }
   }
 }
 
diff --git a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.pages.inc b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.pages.inc
index 105eb6d..4f6510b 100644
--- a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.pages.inc
+++ b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.pages.inc
@@ -6,10 +6,14 @@
 function state_flow_events($node) {
   // Gather information on the current published revision
   $state_flow = state_flow_load_state_machine($node);
+  if (!$state_flow) {
+    drupal_set_message(t('Cannot display the workflow page. This node is not associated with a workflow managed by State Flow.'), 'error');
+    drupal_goto('node/' . $node->nid);
+  }
+
   $events = $state_flow->get_available_events();
   $current_revision_actions = array();
   foreach ($events as $event_machine_name => $event) {
-
     if (state_flow_access($node, $event_machine_name)) {
       $current_revision_actions[] = l($event->get_option('label'), 'node/' . $node->nid . '/revisions/' . $node->vid . '/workflow/' . $event_machine_name);
     }
@@ -48,6 +52,9 @@ function state_flow_events($node) {
     if (($state->status && !($state->state === 'published' && $vid == $node->vid)) || (!$state->status && $vid != $node->vid)) {
       $state_node = node_load($node->nid, $vid);
       $state_state_flow = state_flow_load_state_machine($state_node);
+      if (!$state_state_flow) {
+        continue;
+      }
       $state_events = $state_state_flow->get_available_events();
       $state_actions = array();
       if (node_access('update', $state_node)) {
@@ -177,7 +184,7 @@ function state_flow_events($node) {
 function state_flow_events_revision($form, &$form_state, $node_revision, $new_event = NULL) {
   $form = array();
   $state_flow = state_flow_load_state_machine($node_revision);
-  $all_events = $state_flow->get_available_events();
+  $all_events = $state_flow ? $state_flow->get_available_events() : array();
   $events = array();
   foreach ($all_events as $event_machine_name => $event) {
     if (state_flow_access($node_revision, $event_machine_name)) {
diff --git a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.rules.inc b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.rules.inc
index a1ed0e1..acb9d8e 100644
--- a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.rules.inc
+++ b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/state_flow.rules.inc
@@ -53,5 +53,5 @@ function state_flow_rules_condition_info() {
  */
 function state_flow_rules_condition_node_is_state($node, $state) {
   $state_flow = state_flow_load_state_machine($node);
-  return $state_flow->get_current_state() === $state;
+  return $state_flow ? $state_flow->get_current_state() === $state : FALSE;
 }
diff --git a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/tests/state_flow.test b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/tests/state_flow.test
index 7a908c9..7b4ce82 100644
--- a/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/tests/state_flow.test
+++ b/drupal/drupal-7.9/sites/all/modules/contrib/state_machine/modules/state_flow/tests/state_flow.test
@@ -26,6 +26,9 @@ class StateFlowUnitTest extends DrupalWebTestCase {
     $node = $this->drupalCreateNode();
     $machine = state_flow_load_state_machine($node);
 
+    //make sure this node is associated with a state machine
+    $this->assertTrue($machine, t('New nodes should have a state machine for workflow processing.'));
+
     //make sure first (default) state is draft
     $this->assertEqual($machine->get_current_state(), 'draft', t('New nodes should default to the "draft" state.'));
 
