### Eclipse Workspace Patch 1.0
#P quiz_module
Index: multichoice.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/quiz/multichoice.module,v
retrieving revision 1.57
diff -u -r1.57 multichoice.module
--- multichoice.module	8 Dec 2007 02:29:06 -0000	1.57
+++ multichoice.module	10 Dec 2007 17:41:15 -0000
@@ -562,6 +562,14 @@
     '#type' => 'submit',
     '#value' => t('Submit'),
   );
+  
+  $quiz = node_load(arg(1)); 
+  if ($quiz->backwards_navigation == 1 && $node->question_number){
+    $form['back'] = array(
+      '#type' => 'submit',
+      '#value' => t('Try again'),
+    );	
+  }  
 
   return $form;
 }
@@ -612,9 +620,18 @@
  *  The answer id.
  */
 function multichoice_store_answer($nid, $vid, $rid, $answer_id) {
-  db_query("INSERT INTO {quiz_multichoice_user_answers} " .
-           "(question_nid, question_vid, result_id, answer_id) " .
-           "VALUES (%d, %d, %d, %d)", $nid, $vid, $rid, $answer_id);
+  $result = db_query("SELECT result_id FROM {quiz_multichoice_user_answers} WHERE question_nid = %d AND question_vid = %d AND result_id = %d", $nid, $vid, $rid);
+  if (db_num_rows($result)) {
+  	db_query("UPDATE {quiz_multichoice_user_answers} " . 
+  	         "SET answer_id = %d " . 
+  	         "WHERE question_nid = %d AND question_vid = %d AND result_id = %d",
+  	         $answer_id, $nid, $vid, $rid);
+  }
+  else {
+    db_query("INSERT INTO {quiz_multichoice_user_answers} " .
+             "(question_nid, question_vid, result_id, answer_id) " .
+             "VALUES (%d, %d, %d, %d)", $nid, $vid, $rid, $answer_id);
+  }
 }
 
 /**
