--- loncom/homework/response.pm	2011/11/14 03:08:01	1.227
+++ loncom/homework/response.pm	2011/11/29 17:43:30	1.229
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # various response type definitons response definition
 #
-# $Id: response.pm,v 1.227 2011/11/14 03:08:01 raeburn Exp $
+# $Id: response.pm,v 1.229 2011/11/29 17:43:30 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -53,6 +53,7 @@ package Apache::response;
 use strict;
 use Apache::lonlocal;
 use Apache::lonnet;
+use Apache::inputtags();
 use Apache::lonmaxima();
 use Apache::lonr();
 
@@ -490,7 +491,7 @@ sub end_customresponse {
 	$result .= &Apache::response::answer_footer('customresponse');
     }
     if ($target eq 'web') {
-	&setup_prior_tries_hash(\&format_prior_response_math);
+	&setup_prior_tries_hash(\&format_prior_response_custom);
     }
     if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || 
 	$target eq 'tex' || $target eq 'analyze') {
@@ -511,6 +512,9 @@ sub end_customresponse {
 
 sub format_prior_response_custom {
     my ($mode,$answer) =@_;
+    if (ref($answer) eq 'ARRAY') {
+        $answer = '('.join(', ', @{ $answer }).')';
+    }
     return '<span class="LC_prior_custom">'.
 	    &HTML::Entities::encode($answer,'"<>&').'</span>';
 }
@@ -1181,11 +1185,17 @@ sub whichorder {
 
 sub show_answer {
     my $part   = $Apache::inputtags::part;
-    my $award  = $Apache::lonhomework::history{"resource.$part.awarded"};
+    my $award  = $Apache::lonhomework::history{"resource.$part.solved"};
     my $status = $Apache::inputtags::status[-1];
-    return  ( ($award ==1
-	       && &Apache::lonhomework::show_problem_status())
-	      || $status eq "SHOW_ANSWER");
+    my $canshow = 0;
+    if ($award =~ /^correct/) {
+        if ((&Apache::inputtags::grading_is_nonlenient($part)) ||
+            ($Apache::lonhomework::history{"resource.$part.awarded"} == 1)) {
+            $canshow = 1;
+        }   
+    }
+    return  (($canshow && &Apache::lonhomework::show_problem_status()) 
+	     || $status eq "SHOW_ANSWER");
 }
 
 sub analyze_store_foilgroup {