Index: gradebookapi.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/gradebook/gradebookapi.module,v
retrieving revision 1.11.4.2.2.6
diff -u -r1.11.4.2.2.6 gradebookapi.module
--- gradebookapi.module	3 Feb 2009 06:46:50 -0000	1.11.4.2.2.6
+++ gradebookapi.module	24 Feb 2009 13:11:50 -0000
@@ -317,7 +317,7 @@
     $grade = db_fetch_object($result);
     $grade->uid = $uid;
     $grade->nid = $nid;
-
+    $grade->timestamp = 0; // use this to indicate that grade was not loaded from database
     return $grade;
   }
 }
Index: gradebook.pages.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/gradebook/Attic/gradebook.pages.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 gradebook.pages.inc
--- gradebook.pages.inc	10 Feb 2009 21:13:38 -0000	1.1.2.6
+++ gradebook.pages.inc	24 Feb 2009 13:11:50 -0000
@@ -237,6 +237,7 @@
 }
 
 function gradebook_grade_form_cancel($form, &$form_state) {
+    unset($form_state['storage']);  // clear the storage bins now that files have been saved - needed for redirect
     $form_state['redirect'] = $form_state['values']['return_url'];
     unset($form_state['values']['return_url']);
 }
@@ -253,7 +254,12 @@
         gradebookapi_set_grade($grade);
       }
       else {
-        gradebookapi_manage_attachments($grade); // must have permissions to upload files to get this far...
+        if ($grade->timestamp == 0) {  // grade doesn't exist in gradebookapi_grade, save a null grade 
+          gradebookapi_set_grade($grade);
+        }
+        else { // grade already exists, just save the attachments
+          gradebookapi_manage_attachments($grade); // must have permissions to upload files to get this far...
+        }
       }
       ++$count;
     }
