diff --git a/modules/upload/upload.module b/modules/upload/upload.module
index 49346449079ac96a1d2a2f9aecd7554c5f0a19be..53d79c74186aa506bfb807820df25e8404e0fe5f 100644
--- a/modules/upload/upload.module
+++ b/modules/upload/upload.module
@@ -189,6 +189,9 @@ function upload_node_form_submit(&$form, &$form_state) {
 
   if (isset($form_state['values']['files'])) {
     foreach ($form_state['values']['files'] as $fid => $file) {
+      // If the node was previewed prior to saving, $form['#node']->files[$fid]
+      // is an array instead of an object. Convert file to object for compatibility. 
+      $form['#node']->files[$fid] = (object) $form['#node']->files[$fid];
       $form_state['values']['files'][$fid]['new'] = !empty($form['#node']->files[$fid]->new);
     }
   }