--- loncom/homework/grades.pm	2013/05/10 12:48:48	1.687
+++ loncom/homework/grades.pm	2013/06/01 00:22:42	1.689
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.687 2013/05/10 12:48:48 raeburn Exp $
+# $Id: grades.pm,v 1.689 2013/06/01 00:22:42 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -7923,9 +7923,10 @@ sub scantron_process_students {
         return '';
     }  
     my $map=$navmap->getResourceByUrl($sequence);
-    my $randomorder;
+    my ($randomorder,$randompick);
     if (ref($map)) {
         $randomorder = $map->randomorder();
+        $randompick = $map->randompick();
     }
     my @resources=$navmap->retrieveResources($map,\&scantron_filter,1,0);
     my (%grader_partids_by_symb,%grader_randomlists_by_symb,%ordered);
@@ -8034,7 +8035,7 @@ SCANTRONFORM
         }
 
         my @mapresources = @resources;
-        if ($randomorder) {
+        if ($randomorder || $randompick) {
             @mapresources = 
                 &users_order($user,$scancode,$sequence,\@master_seq,\%ordered,
                              \%symb_to_resource);
@@ -8214,7 +8215,7 @@ sub users_order  {
         my $actual_seq =
             &Apache::lonprintout::master_seq_to_person_seq($mapurl,
                                                            $master_seq,
-                                                           $user,$scancode);
+                                                           $user,$scancode,1);
         if (ref($actual_seq) eq 'ARRAY') {
             @{$ordered->{$scancode}} =
                 map { $symb_to_resource->{$_}; } @{$actual_seq};
@@ -8225,7 +8226,7 @@ sub users_order  {
         my $actual_seq =
             &Apache::lonprintout::master_seq_to_person_seq($mapurl,
                                                            $master_seq,
-                                                           $user);
+                                                           $user,undef,1);
         if (ref($actual_seq) eq 'ARRAY') {
             @mapresources = 
                 map { $symb_to_resource->{$_}; } @{$actual_seq};
@@ -8539,9 +8540,10 @@ sub checkscantron_results {
         return '';
     }
     my $map=$navmap->getResourceByUrl($sequence);
-    my ($randomorder,@master_seq,%symb_to_resource);
+    my ($randomorder,$randompick,@master_seq,%symb_to_resource);
     if (ref($map)) { 
         $randomorder=$map->randomorder();
+        $randompick=$map->randompick();
     }
     my @resources=$navmap->retrieveResources($map,\&scantron_filter,1,0);
     foreach my $resource (@resources) {
@@ -8619,7 +8621,7 @@ sub checkscantron_results {
         }
 
         my @mapresources = @resources;
-        if ($randomorder) {
+        if ($randomorder || $randompick) {
             @mapresources =
                 &users_order($user,$scancode,$sequence,\@master_seq,\%ordered,
                              \%symb_to_resource);