diff --git a/backup/restorelib.php b/backup/restorelib.php
index 9feede0..44d9080 100644
--- a/backup/restorelib.php
+++ b/backup/restorelib.php
@@ -1096,51 +1096,22 @@ define('RESTORE_GROUPS_GROUPINGS', 3);
         $sequence = "";
 
         if ($info) {
+            $course = get_record("course", "id", $restore->course_id); 
+            if ($course->numsections == 0) { 
+                $num_sections = 0; 
+            } else { 
+                $num_sections = $course->numsections + 1; 
+            } 
             //For each, section, save it to db
             foreach ($info->sections as $key => $sect) {
                 $sequence = "";
                 $section = new object();
                 $section->course = $restore->course_id;
-                $section->section = $sect->number;
+                $section->section = $sect->number + $num_sections;
                 $section->summary = backup_todb($sect->summary);
                 $section->visible = $sect->visible;
                 $section->sequence = "";
-                //Now calculate the section's newid
-                $newid = 0;
-                if ($restore->restoreto == 2) {
-                    //Save it to db (only if restoring to new course)
-                    $newid = insert_record("course_sections",$section);
-                } else {
-                    //Get section id when restoring in existing course
-                    $rec = get_record("course_sections","course",$restore->course_id,
-                                                        "section",$section->section);
-                    //If section exists, has empty summary and backup has some summary, use it. MDL-8848
-                    if ($rec && empty($rec->summary) && !empty($section->summary)) {
-                        $rec->summary = $section->summary;
-                        update_record("course_sections", $rec);
-                    }
-                    //If that section doesn't exist, get section 0 (every mod will be
-                    //asigned there
-                    if(!$rec) {
-                        $rec = get_record("course_sections","course",$restore->course_id,
-                                                            "section","0");
-                    }
-                    //New check. If section 0 doesn't exist, insert it here !!
-                    //Teorically this never should happen but, in practice, some users
-                    //have reported this issue.
-                    if(!$rec) {
-                        $zero_sec = new object();
-                        $zero_sec->course = $restore->course_id;
-                        $zero_sec->section = 0;
-                        $zero_sec->summary = "";
-                        $zero_sec->sequence = "";
-                        $newid = insert_record("course_sections",$zero_sec);
-                        $rec->id = $newid;
-                        $rec->sequence = "";
-                    }
-                    $newid = $rec->id;
-                    $sequence = $rec->sequence;
-                }
+                $newid = insert_record("course_sections",$section);
                 if ($newid) {
                     //save old and new section id
                     backup_putid ($restore->backup_unique_code,"course_sections",$key,$newid);
@@ -1247,7 +1218,8 @@ define('RESTORE_GROUPS_GROUPINGS', 3);
         } else {
             $status = false;
         }
-        return $status;
+        $course->numsections += sizeof($info->sections);
+        return $status && update_record('course', $course); 
     }
 
     //Called to set up any course-format specific data that may be in the file
@@ -7947,6 +7919,22 @@ define('RESTORE_GROUPS_GROUPINGS', 3);
                     $status = remove_course_contents($restore->course_id,false) and
                         delete_dir_contents($CFG->dataroot."/".$restore->course_id,"backupdata");
                     if ($status) {
+
+                        // Restaura alguns dados que eram ignorados pelo moodle,mas que nos sao uteis
+                        $course->format = addslashes($course_header->course_format); 
+                        $course->numsections = 0; 
+                        $course->hiddensections = addslashes($course_header->course_hiddensections); 
+                        $course->newsitems = addslashes($course_header->course_newsitems); 
+                        $course->showgrades = addslashes($course_header->course_showgrades); 
+                        $course->showreports = addslashes($course_header->course_showreports); 
+                        if (!update_record('course', $course)) { 
+                            if (!defined('RESTORE_SILENTLY')) { 
+                                notify("An error occurred while updating the course configuration."); 
+                            } else { 
+                                $errrostr = "An error occurred while updating the course configuration."; 
+                                return false; 
+                            } 
+                        } 
                         //Now , this situation is equivalent to the "restore to new course" one (we
                         //have a course record and nothing more), so define it as "to new course"
                         $restore->restoreto = 2;
