Index: editview/theme/editview.theme.inc
===================================================================
--- editview/theme/editview.theme.inc	(revision 2316)
+++ editview/theme/editview.theme.inc	(working copy)
@@ -20,7 +20,7 @@
 function template_preprocess_editview_view_row_node_edit(&$variables) {
   if ($variables['row']->nid == 'new') {
     // Create dummy node for new node form.
-    $type = isset($row->node_type) ? $row->node_type : $variables['view']->style_options['editview_node_type'];
+    $type = isset($variables['row']->node_type) ? $variables['row']->node_type : array_pop($variables['view']->style_options['editview_node_type']);
     $node = array('uid' => $variables['user']->uid, 'name' => (isset($variables['user']->name) ? $variables['user']->name : ''), 'type' => $type, 'language' => '');
   }
   else {
@@ -28,7 +28,7 @@
     $node = node_load($variables['row']->nid);
   }
   // Check user permissions.
-  if (isset($node->nid) && node_access('update', $node) || !isset($node->nid) && node_access('create', $type)) {
+  if ((isset($node->nid) && node_access('update', $node)) || (!isset($node->nid) && node_access('create', $type))) {
     /* This function runs once for each row, so prevent page set-up functions
      * from being repeated.
      */
@@ -42,7 +42,8 @@
       $run = FALSE;
     }
     // Add the node form to the variables array.
-    $variables['form'] = drupal_get_form('editview_node_form_'. $variables['row']->nid, $node, $variables['view'], $variables['id'], request_uri());
+    static $static=0;
+    $variables['form'] = drupal_get_form('editview_node_form_'. $variables['row']->nid . ($variables['row']->nid=='new'?$static++:''), $node, $variables['view'], $variables['id'], request_uri());
   }
 }
 
@@ -104,6 +105,7 @@
  */
 function editview_field_form_render(&$form, $field) {
   $element = array('class' => 'editview-field', 'valign' => 'top');
+  
   switch ($field->field_alias) {
     case 'og_ancestry_nid':
       $element['data'] = drupal_render($form['og_nodeapi']['visible']['og_groups']);
@@ -111,6 +113,9 @@
     case 'og_og_private':
       $element['data'] = drupal_render($form['og_nodeapi']['visible']['og_public']);
       break;
+    case 'node_type':
+      $element['data'] = $form['#node']->type;
+      break;
     default:
       if (isset($field->table_alias) && is_numeric($vocab_id = str_replace('term_node_', '', $field->table_alias))) {
         $element['data'] = drupal_render($form['taxonomy'][$vocab_id]);
Index: editview/includes/editview_plugin_style_node_add.inc
===================================================================
--- editview/includes/editview_plugin_style_node_add.inc	(revision 2316)
+++ editview/includes/editview_plugin_style_node_add.inc	(working copy)
@@ -41,6 +41,7 @@
       '#options' => node_get_types('names'),
       '#description' => t('Select a node type for the new node form.'),
       '#required' => TRUE,
+      '#multiple'=>TRUE,
     );
     $form['editview_node_position'] = array(
       '#type' => 'radios',
@@ -96,12 +97,19 @@
     }
     else {
       // Otherwise, add one empty node.
-      if (empty($this->options['editview_node_position'])) {
-        array_unshift($this->view->result, $node);
+      
+      foreach(array_filter($this->options['editview_node_type']) as $type=> $val) { 
+        $new_node = clone $node; 
+        $new_node->node_type = $type;
+        
+        if (empty($this->options['editview_node_position'])) {
+          array_unshift($this->view->result, $new_node);
+        }
+        else {
+          array_push($this->view->result, $new_node);
+        }
       }
-      else {
-        array_push($this->view->result, $node);
-      }
+      
     }
     // Initialize the Editview row plug-in.
     $this->row_plugin = views_get_plugin('row', 'editview');
