diff --git a/forms/files.json.php b/forms/files.json.php
index a944e196160b6daee7cd736b01c97511b40cddec..c88ae2927e4feccf0b9d3bafa288a6f6f50eaff7 100644
--- a/forms/files.json.php
+++ b/forms/files.json.php
@@ -60,6 +60,10 @@ try {
             break;
         case 'load' :
             $fgm = $vpl->get_fgm($type);
+            if ($type == 'corrected' && empty($fgm->getfilelist())) {
+                // By default, load required files into corrected files.
+                $fgm = $vpl->get_fgm('required');
+            }
             $outcome->response->files = mod_vpl_edit::filestoide( $fgm->getallfiles() );
             break;
         case 'resetfiles' :
diff --git a/forms/files.php b/forms/files.php
index d65879bf13896eb4bc32e1be3490cbe6600cb785..93830a12b8a5580172f943f89d0684f9dedb6803 100644
--- a/forms/files.php
+++ b/forms/files.php
@@ -51,6 +51,7 @@ $options ['saved'] = true;
 
 switch ($type) {
     case 'required':
+    case 'corrected':
         $options ['minfiles'] = 0;
         $options ['maxfiles'] = $vpl->get_instance()->maxfiles;
         break;
@@ -58,10 +59,6 @@ switch ($type) {
         $options ['minfiles'] = $vpl->get_fgm('execution')->get_numstaticfiles();
         $options ['maxfiles'] = 1000;
         break;
-    case 'corrected':
-        $options ['minfiles'] = count($vpl->get_fgm('required')->getfilelist());
-        $options ['maxfiles'] = $vpl->get_instance()->maxfiles;
-        break;
     case 'testcases':
         $options ['minfiles'] = 1;
         $options ['maxfiles'] = 1;