Index: quiz.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/quiz/quiz.module,v
retrieving revision 1.117
diff -u -r1.117 quiz.module
--- quiz.module	10 Dec 2007 04:01:12 -0000	1.117
+++ quiz.module	10 Dec 2007 06:14:58 -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,19 +1165,9 @@
     }
   }
 
-  // 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');
-      // Allow quiz creators to test their quizzes.
-      if (!user_access('create quiz')) {
-        return FALSE;
-      }
-    }
+  // Allow quiz creators to test their quizzes.
+  if (!user_access('create quiz')) {
+    return FALSE;
   }
 
   // Insert quiz_node_results record.
