Index: module.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/module.inc,v
retrieving revision 1.197
diff -u -r1.197 module.inc
--- module.inc	28 Jul 2010 01:46:59 -0000	1.197
+++ module.inc	12 Aug 2010 21:13:05 -0000
@@ -208,7 +208,16 @@
   foreach ($graph as $module => $data) {
     $files[$module]->required_by = isset($data['reverse_paths']) ? $data['reverse_paths'] : array();
     $files[$module]->requires = isset($data['paths']) ? $data['paths'] : array();
+    
+    //Only allow non core modules to be sorted
     $files[$module]->sort = $data['weight'];
+    if(isset($files[$module]->info['required']) && $files[$module]->info['required']){
+      $files[$module]->sort = 1;
+    }
+    //Installation profiles have to be the last module
+    if(isset($GLOBALS['install_state']['profiles'][$module])){
+      $files[$module]->sort = 0-count($files);
+    }
   }
   return $files;
 }
