diff --git includes/bootstrap.inc includes/bootstrap.inc
index 0739332..d5d09a4 100644
--- includes/bootstrap.inc
+++ includes/bootstrap.inc
@@ -930,7 +930,7 @@ function drupal_load($type, $name) {
   $filename = drupal_get_filename($type, $name);
 
   if ($filename) {
-    include_once DRUPAL_ROOT . '/' . $filename;
+    include DRUPAL_ROOT . '/' . $filename;
     $files[$type][$name] = TRUE;
 
     return TRUE;
diff --git includes/install.core.inc includes/install.core.inc
index c7b4053..8ec2997 100644
--- includes/install.core.inc
+++ includes/install.core.inc
@@ -595,10 +595,12 @@ function install_tasks($install_state) {
 
   // Allow the installation profile to modify the full list of tasks.
   if (!empty($install_state['parameters']['profile'])) {
-    $profile_file = DRUPAL_ROOT . '/profiles/' . $install_state['parameters']['profile'] . '/' . $install_state['parameters']['profile'] . '.profile';
-    if (is_file($profile_file)) {
-      include_once $profile_file;
-      $function = $install_state['parameters']['profile'] . '_install_tasks_alter';
+    $profile = $install_state['parameters']['profile'];
+    $profile_file = 'profiles/' . $profile . '/' . $profile . '.profile';
+    if (is_file(DRUPAL_ROOT . '/' . $profile_file)) {
+      drupal_get_filename('module', $profile, $profile_file);
+      drupal_load('module', $profile);
+      $function = $profile . '_install_tasks_alter';
       if (function_exists($function)) {
         $function($tasks, $install_state);
       }
