--- loncom/homework/imageresponse.pm	2011/11/14 03:08:01	1.103
+++ loncom/homework/imageresponse.pm	2012/10/12 12:45:46	1.104
@@ -2,7 +2,7 @@
 # The LearningOnline Network with CAPA
 # image click response style
 #
-# $Id: imageresponse.pm,v 1.103 2011/11/14 03:08:01 raeburn Exp $
+# $Id: imageresponse.pm,v 1.104 2012/10/12 12:45:46 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -212,8 +212,11 @@ sub getfoilcounts {
 
 sub whichfoils {
     my ($max)=@_;
-    return if (!defined(@{ $Apache::response::foilgroup{'names'} }));
-    my @names = @{ $Apache::response::foilgroup{'names'} };
+    my @names;
+    if (ref($Apache::response::foilgroup{'names'}) eq 'ARRAY') {
+        @names = @{ $Apache::response::foilgroup{'names'} };
+    }
+    return if (!@names);
     my @whichopt;
     while ((($#whichopt+1) < $max) && ($#names > -1)) {
 	&Apache::lonxml::debug("Have $#whichopt max is $max");
@@ -473,9 +476,11 @@ sub gradefoils {
 	my ($x,$y) = split(':',$env{"form.HWVAL_$id:$temp"});
 	$response{$name} = $env{"form.HWVAL_$id:$temp"};
 	&Apache::lonxml::debug("Got a x of $x and a y of $y for $name");
-	if (defined($x) && defined($y) &&
-	    defined(@{ $Apache::response::foilgroup{"$name.area"} })) {
-	    my @areas = @{ $Apache::response::foilgroup{"$name.area"} };
+        my @areas; 
+        if (ref($Apache::response::foilgroup{"$name.area"}) eq 'ARRAY') {
+            @areas = @{ $Apache::response::foilgroup{"$name.area"} };
+        }
+	if (defined($x) && defined($y) && @areas) {
 	    my $grade="INCORRECT";
 	    foreach my $area (@areas) {
 		&Apache::lonxml::debug("Area is $area for $name");