diff -r 20435072ea29 mgmt/client/haclient.py.in
--- a/mgmt/client/haclient.py.in	Thu Jul 17 10:09:21 2008 +0900
+++ b/mgmt/client/haclient.py.in	Thu Jul 17 10:12:19 2008 +0900
@@ -2593,11 +2593,11 @@ class MainWindow :
 		try :
 			file_list = current_tarfile.getnames()
 			current_tarfile.extractall(save_dir)
+			current_tarfile.close()
 		except tarfile.TarError, msg :
 			msgbox(_("Tar error: ") + "%s: '%s'"%(str(msg), save_file))
-			return
-		finally :
 			current_tarfile.close()
+			return
 
 		des_filename = None
 		for filename in file_list :
@@ -2667,15 +2667,18 @@ class MainWindow :
 			folder = os.path.join(save_dir, current_arcname)
 			try :
 				new_tarfile.add(folder, new_arcname)
+				new_tarfile.close()
+				self.delete_files(save_dir, file_list)
 			except IOError, msg :
 				msgbox(_("I/O error: ") + str(msg))
+				new_tarfile.close()
+				self.delete_files(save_dir, file_list)
 				return
 			except tarfile.TarError, msg :
 				msgbox(_("Tar error: ") + "%s: '%s'"%(str(msg), save_file))
-				return
-			finally :
 				new_tarfile.close()
 				self.delete_files(save_dir, file_list)
+				return
 
 		else :
 			for filename in file_list :
