Index: quiz.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/quiz/quiz.module,v
retrieving revision 1.118
diff -u -r1.118 quiz.module
--- quiz.module	10 Dec 2007 23:02:33 -0000	1.118
+++ quiz.module	10 Dec 2007 23:13:36 -0000
@@ -875,6 +875,16 @@
       if (!$user->uid && arg(4) == NULL) {
         drupal_goto('node/'. $quiz->nid .'/quiz/start/'. md5(mt_rand() . time()));
       }
+      if ($user->uid && $quiz->takes != 0) {
+	    $times = db_num_rows(db_query("SELECT result_id " .
+	                                  "FROM {quiz_node_results} " .
+	                                  "WHERE nid = %d AND vid = %d AND uid = %d",
+	                                  $quiz->nid, $quiz->vid, $user->uid));
+	    if ($times >= $quiz->takes) {
+	      drupal_set_message(t('You have already taken this @quiz %d times.', array('@quiz' => QUIZ_NAME, '%d' => $times)), 'status');
+	      return;
+	    }
+      }
 
       if (!isset($_SESSION['quiz_'. $quiz->nid]['quiz_questions'])) {
         // First time running through quiz.
@@ -1155,17 +1165,6 @@
     }
   }
 
-  // Validate number of takes if we have a registered user.
-  if ($user->uid && $quiz->takes != 0) {
-    $times = db_num_rows(db_query("SELECT result_id " .
-                                  "FROM {quiz_node_results} " .
-                                  "WHERE nid = %d AND vid = %d AND uid = %d",
-                                  $quiz->nid, $quiz->vid, $user->uid));
-    if ($times >= $quiz->takes) {
-      drupal_set_message(t('You have already taken this @quiz %d times.', array('@quiz' => QUIZ_NAME, '%d' => $times)), 'status');
-    }
-  }
-
   // Insert quiz_node_results record.
   $rid = db_next_id('{quiz_node_results}_result_id');
   $result = db_query("INSERT INTO {quiz_node_results} " .
