diff --git a/platform/migrate.provision.inc b/platform/migrate.provision.inc
index eca34d7..908d0bb 100644
--- a/platform/migrate.provision.inc
+++ b/platform/migrate.provision.inc
@@ -32,6 +32,13 @@ function drush_provision_drupal_provision_migrate_validate($url = null, $platfor
  */
 function drush_provision_drupal_pre_provision_migrate($url, $platform) {
   drush_invoke('provision backup', $url);
+  /* Set offline mode to true and re-generate the settings.php. This will invoke
+   * provision_drupal_provision_drupal_config(), which will write a 
+   * $conf['site_offline'] = 1; to the settings.php
+   */
+  drush_log(dt("Putting site under maintenance"));
+  drush_set_option('site_offline', true);
+  _provision_drupal_create_settings_file($url);
 }
 
 /**
@@ -40,6 +47,10 @@ function drush_provision_drupal_pre_provision_migrate($url, $platform) {
  */
 function drush_provision_drupal_pre_provision_migrate_rollback($url, $platform) {
   $success =  provision_path("unlink", drush_get_option('backup_file'), TRUE, dt('Removed unused migration site package'), dt('Could not remove unused migration site package'));
+  // Set site_offline to false and regenerate the config 
+  drush_log(dt("Bringing site out of maintenance"));
+  drush_set_option('site_offline', false);
+  _provision_drupal_create_settings_file($url);
   _provision_apache_create_vhost_config($url);
 }
 
@@ -62,4 +73,8 @@ function drush_provision_drupal_post_provision_migrate($url) {
   _provision_recursive_delete(drush_get_option('sites_path') ."/$url");
 }
 
-
+function  provision_drupal_provision_drupal_config($url, $options) {
+  if ($options['site_offline']) {
+    return "\$conf['site_offline'] = 1;";
+  }
+}
