diff --git a/indra/linux_updater/linux_updater.cpp b/indra/linux_updater/linux_updater.cpp
index a7f886b389ab9d9899d21509f5e7b48d90551b85..cbdb3ddfe039a374725370decfe4c3cff2006c29 100644
--- a/indra/linux_updater/linux_updater.cpp
+++ b/indra/linux_updater/linux_updater.cpp
@@ -403,15 +403,6 @@ gpointer worker_thread_cb(gpointer data)
 		app_state->failure = TRUE;
 	}
 
-	// FIXME: delete package file also if delete-event is raised on window
-	if(!app_state->url.empty() && !app_state->file.empty())
-	{
-		if (gDirUtilp->fileExists(app_state->file))
-		{
-			LLFile::remove(app_state->file);
-		}
-	}
-
 	gdk_threads_enter();
 	updater_app_quit(app_state);
 	gdk_threads_leave();
@@ -824,6 +815,15 @@ int main(int argc, char **argv)
 	gtk_main();
 	gdk_threads_leave();
 
+	// Delete the file only if created from url download.
+	if(!app_state->url.empty() && !app_state->file.empty())
+	{
+		if (gDirUtilp->fileExists(app_state->file))
+		{
+			LLFile::remove(app_state->file);
+		}
+	}
+
 	bool success = app_state->failure != FALSE;
 	delete app_state;
 	return success ? 0 : 1;
diff --git a/indra/viewer_components/updater/scripts/linux/update_install b/indra/viewer_components/updater/scripts/linux/update_install
index 7d8a27607c376138e9aada3bd04fcc8966ae46ca..fef5ef7d09a95393d8e9bf8edf1a21fedd2e8416 100755
--- a/indra/viewer_components/updater/scripts/linux/update_install
+++ b/indra/viewer_components/updater/scripts/linux/update_install
@@ -5,4 +5,6 @@ bin/linux-updater.bin --file "$1" --dest "$INSTALL_DIR" --name "Second Life View
 
 if [ $? -ne 0 ]
    then touch $2
-fi
\ No newline at end of file
+fi
+
+rm -f $1