diff --git a/includes/editview.views.inc b/includes/editview.views.inc
index 9821950..483b592 100644
--- a/includes/editview.views.inc
+++ b/includes/editview.views.inc
@@ -67,7 +67,7 @@ function editview_views_plugins() {
  */
 function editview_js() {
   if (isset($_POST['form_build_id']) && isset($_POST['editview_view'])) {
-    // We are going to need to load nodes 
+    // We are going to need to load nodes
     module_load_include('inc', 'node', 'node.pages');
 
     // Build the view so all necessary classes will be defined.
@@ -138,18 +138,28 @@ function editview_node_form(&$form_state, $node, $view, $order, $uri) {
   $form['buttons']['delete']['#submit'] = array('editview_node_form_delete_submit');
 
   // Mark the buttons for Javascript handling
-  $form['buttons']['submit']['#attributes']['class'] .= " editview-button";
-  $form['buttons']['delete']['#attributes']['class'] .= " editview-button";
+  if (isset($form['buttons']['submit']['#attributes']['class'])) {
+    $form['buttons']['submit']['#attributes']['class'] .= " editview-button";
+  }
+  else {
+    $form['buttons']['submit']['#attributes']['class'] = "editview-button";
+  }
+  if (isset($form['buttons']['delete']['#attributes']['class'])) {
+    $form['buttons']['delete']['#attributes']['class'] .= " editview-button";
+  }
+  else {
+    $form['buttons']['delete']['#attributes']['class'] = "editview-button";
+  }
 
-  // We need some hidden variables to reconstruct all form options in 
+  // We need some hidden variables to reconstruct all form options in
   // editview_js, especially in the case the form could not be recovered
   // from the form cache. Also, we add a hidden field which will be filled
   // with all ids used in this form. Javascript will get them from the
   // Drupal.settings.
-  $form['editview_view'] = array('#type' => 'hidden', '#value' => $view->name); 
-  $form['editview_nid'] = array('#type' => 'hidden', '#value' => $node->nid); 
-  $form['editview_order'] = array('#type' => 'hidden', '#value' => $order); 
-  $form['editview_uri'] = array('#type' => 'hidden', '#value' => $uri); 
+  $form['editview_view'] = array('#type' => 'hidden', '#value' => $view->name);
+  $form['editview_nid'] = array('#type' => 'hidden', '#value' => is_array($node) ? isset($node['nid']) ? $node['nid'] : NULL : $node->nid);
+  $form['editview_order'] = array('#type' => 'hidden', '#value' => $order);
+  $form['editview_uri'] = array('#type' => 'hidden', '#value' => $uri);
   $form['editview_ids'] = array('#type' => 'hidden', '#default_value' => "");
 
   // Other form data. Note the editview_form_after_build callback which
@@ -170,7 +180,7 @@ function editview_node_form(&$form_state, $node, $view, $order, $uri) {
  */
 function editview_form_after_build($form, &$form_state) {
   static $ids;
-  
+
   // Check if we are in a Javascript callback
   if (array_key_exists('HTTP_X_REQUESTED_WITH', $_SERVER) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
     // This is a Javascript callback, so we try to restore all ids
