diff --git a/question_types/quiz_question/quiz_question.core.inc b/question_types/quiz_question/quiz_question.core.inc
index 4fbd193..9f387e6 100644
--- a/question_types/quiz_question/quiz_question.core.inc
+++ b/question_types/quiz_question/quiz_question.core.inc
@@ -58,7 +58,7 @@ abstract class QuizQuestion {
    * @param $node
    *   The node object
    */
-  public function __construct(stdClass &$node) {
+  public function __construct(stdClass $node) {
     $this->node = $node;
   }
 
@@ -613,10 +613,10 @@ abstract class QuizQuestionResponse {
    * @return int
    *   The max score of this question response.
    */
-  public function getMaxScore($weight_adjusted = TRUE) {
+  final function getMaxScore($weight_adjusted = TRUE) {
     if ($weight_adjusted) {
       $quiz_result = quiz_result_load($this->result_id);
-        $relationships = entity_load('quiz_question_relationship', FALSE, array(
+      $relationships = entity_load('quiz_question_relationship', FALSE, array(
         'parent_nid' => $quiz_result->nid,
         'parent_vid' => $quiz_result->vid,
         'child_nid' => $this->question->nid,
@@ -917,3 +917,58 @@ abstract class QuizQuestionResponse {
   }
 
 }
+
+class QuizQuestionBroken extends QuizQuestion {
+
+  public function getCreationForm(array &$form_state = NULL) {
+
+  }
+
+  public function getMaximumScore() {
+
+  }
+
+  public function saveNodeProperties() {
+
+  }
+
+  public function validateNode(array &$form) {
+
+  }
+
+  public function hasFeedback() {
+    return FALSE;
+  }
+
+}
+
+class QuizQuestionResponseBroken extends QuizQuestionResponse {
+
+  public function getReport() {
+    return array(
+      'answer_id' => 0,
+      'is_correct' => NULL,
+    );
+  }
+
+  public function __construct($result_id, stdClass $question_node, $answer = NULL) {
+    $this->quizQuestion = _quiz_question_get_instance($question_node);
+  }
+
+  public function delete() {
+
+  }
+
+  public function getResponse() {
+
+  }
+
+  public function save() {
+
+  }
+
+  public function score() {
+
+  }
+
+}
diff --git a/question_types/quiz_question/quiz_question.module b/question_types/quiz_question/quiz_question.module
index 453bf83..4b0ffa9 100644
--- a/question_types/quiz_question/quiz_question.module
+++ b/question_types/quiz_question/quiz_question.module
@@ -606,9 +606,15 @@ function quiz_question_load($nodes) {
  */
 function _quiz_question_get_instance($node) {
   $info = quiz_question_get_info();
-  $constructor = $info[$node->type]['question provider'];
+  if (!empty($node->type)) {
+    $constructor = $info[$node->type]['question provider'];
+  }
+  else {
+    $node = new stdClass;
+  }
+
   if (empty($constructor)) {
-    return FALSE;
+    $constructor = 'QuizQuestionBroken';
   }
 
   // We create a new instance of QuizQuestion
@@ -644,7 +650,14 @@ function _quiz_question_response_get_instance($result_id, $question, $answer = N
     $question = node_load($nid, $vid);
   }
 
-  $constructor = $info[$question->type]['response provider'];
+  if (!empty($question->type)) {
+    $constructor = $info[$question->type]['response provider'];
+  }
+
+  if (empty($constructor)) {
+    $constructor = 'QuizQuestionResponseBroken';
+    $question = new stdClass;
+  }
   $to_return = new $constructor($result_id, $question, $answer);
   // All responce classes must extend QuizQuestionResponse
   if (!($to_return instanceof QuizQuestionResponse)) {
diff --git a/quiz.module b/quiz.module
index 95f11a7..f9f2124 100644
--- a/quiz.module
+++ b/quiz.module
@@ -3934,7 +3934,7 @@ function quiz_result_form($form, &$form_state, $quiz_result) {
       // Loop through all the questions and get their scoring form.
       $question_node = node_load($question['nid'], $question['vid']);
       $instance = _quiz_question_response_get_instance($quiz_result->result_id, $question_node);
-      $qras = entity_load('quiz_result_answer', FALSE, array('result_id' => $quiz_result->result_id, 'question_nid' => $question_node->nid, 'question_vid' => $question_node->vid));
+      $qras = entity_load('quiz_result_answer', FALSE, array('result_id' => $quiz_result->result_id, 'question_nid' => $question['nid'], 'question_vid' => $question['vid']));
       $qra = reset($qras);
       // Get the feedback elements.
       if ($instance->getQuizQuestion()->hasFeedback()) {
