--- backup_migrate.module	la elo 22 22:58:12 2009
+++ backup_migrate.module	su loka  4 23:18:40 2009
@@ -553,6 +553,19 @@
     $form['advanced']['#title'] = t('Advanced Options');
     $form['advanced']['#collapsed'] = true;
     $form['advanced']['#collapsible'] = true;
+	
+	// Added tmp-folder restore fix
+    $form['advanced']['restore_tmp_folder'] = array(
+      "#type" => "checkbox",
+      "#title" => t("Change temp-folder back after restore?"),
+      "#description" => t("When migrating from another system, such as Windows to Linux, 
+			the site temporary folder value always changes with the variable-table import.
+			If this happens, the setting usually has to be changed back to the correct value !link . 
+			If you check this box, the old temp-folder value is automatically restored.
+			", array('!link' => l('on this page','admin/settings/file-system'))),
+      "#default_value" => variable_get('backup_migrate_restore_tmp_folder', 1),
+    );  	
+	
   }
 
   $form['submit'] = array(
@@ -573,9 +586,19 @@
  * The restore submit. Do the restore.
  */
 function backup_migrate_ui_manual_restore_form_submit($form, &$form_state) {
+	if($_POST['restore_tmp_folder']){	
+		// Save old tmp-folder
+		$old_tmp_folder = variable_get('file_directory_temp', NULL);
+	}
+
   if ($file = file_save_upload('backup_migrate_restore_upload')) {
     backup_migrate_include('destinations');
-    backup_migrate_perform_restore('upload', $file->filepath, $form_state['values']);
+    $restore_ok = backup_migrate_perform_restore('upload', $file->filepath, $form_state['values']);
+	
+	if($restore_ok && $old_tmp_folder && $_POST['restore_tmp_folder']){
+		// Restore old tmp-folder
+		variable_set('file_directory_temp', $old_tmp_folder);
+	}
   }
   $form_state['redirect'] = 'admin/content/backup_migrate/restore';
 }
