diff --git a/db/Provision/Service/db/mysql.php b/db/Provision/Service/db/mysql.php
index 5f1a7cbf..c43e3137 100644
--- a/db/Provision/Service/db/mysql.php
+++ b/db/Provision/Service/db/mysql.php
@@ -245,6 +245,9 @@ port=%s
    * Generate a mysqldump for use in backups.
    */
   function generate_dump() {
+    if (!file_exists(d()->site_path)) {
+      drush_log(dt('Site Path does not exist: ' . d()->site_path));
+    }
     // Set the umask to 077 so that the dump itself is non-readable by the
     // webserver.
     umask(0077);
diff --git a/platform/delete.provision.inc b/platform/delete.provision.inc
index 33b63b21..2f2a798a 100644
--- a/platform/delete.provision.inc
+++ b/platform/delete.provision.inc
@@ -9,10 +9,15 @@ function drush_provision_drupal_pre_provision_delete($backup_file = NULL) {
     if (!empty($backup_file) && !strpos($backup_file, '/')) {
       drush_set_error('PROVISION_DELETE_BACKUP_NAME_RELATIVE', dt('The passed backup name is a relative path, storing that in the site directory which is going to be deleted is probably not intended. Try an absolute name, or no name to let one be generated.'));
     }
-    else {
+    // If site database exists and is boostrappad, run a backup.
+    elseif (drush_bootstrap_max() == DRUSH_BOOTSTRAP_DRUPAL_DATABASE) {
+      drush_log(dt('Invoking drush provision-backup...'));
       drush_invoke("provision-backup", $backup_file);
       drush_unset_option('force', 'process');
     }
+    else {
+      drush_log(dt('Warning: A site backup was not made because a site database was not found.'), 'warning');
+    }
   }
 }
 
diff --git a/platform/provision_drupal.drush.inc b/platform/provision_drupal.drush.inc
index 2279b9d4..3e84bbcf 100644
--- a/platform/provision_drupal.drush.inc
+++ b/platform/provision_drupal.drush.inc
@@ -108,7 +108,9 @@ function provision_drupal_push_site($override_slave_authority = FALSE) {
   ));
 
   // Sync the platform
-  d()->service('http')->sync(d()->root, array('exclude-sites' => TRUE));
+  $sync_path = d()->root;
+  drush_command_invoke_all_ref('provision_platform_sync_path_alter', $sync_path, d());
+  d()->service('http')->sync($sync_path, array('exclude-sites' => TRUE));
 
   if (d()->type === 'site') {
     // Check whether we're hosted on a cluster, in which case, the master is
