Index: backup/restorelib.php =================================================================== --- backup/restorelib.php (revision 14386) +++ backup/restorelib.php (working copy) @@ -4844,6 +4844,10 @@ FROM {$CFG->prefix}backup_ids WHERE backup_code = '$restore->backup_unique_code' AND table_name = 'course_modules'"); + + if (!$course_modules) { + $course_modules = array(); + } if ($course_modules) { foreach($course_modules as $cm) { //Get full record, using backup_getids @@ -4871,19 +4875,10 @@ } else { $status = false; } - // MDL-14326 remove empty course modules instance's (credit goes to John T. Macklin from Remote Learner) - $course_modules_inst_zero = get_records_sql("SELECT id, course, instance - FROM {$CFG->prefix}course_modules - WHERE id = '$cm_module->new_id' AND - instance = '0'"); - - if($course_modules_inst_zero){ // Clean up the invalid instances - foreach($course_modules_inst_zero as $course_modules_inst){ - delete_records('course_modules', 'id',$course_modules_inst->id); - } - } - } + /// Remove ones that failed to be remapped + delete_records('course_modules', 'course', $restore->course_id, 'instance', 0); + /// Finally, calculate modinfo cache. rebuild_course_cache($restore->course_id); } Index: mod/assignment/backuplib.php =================================================================== --- mod/assignment/backuplib.php (revision 14386) +++ mod/assignment/backuplib.php (working copy) @@ -44,6 +44,10 @@ function assignment_backup_one_mod($bf,$preferences,$assignment) { global $CFG; + + if ($assignment === 0) { + return false; + } if (is_numeric($assignment)) { $assignment = get_record('assignment','id',$assignment);