diff --git a/Telegram/SourceFiles/application.cpp b/Telegram/SourceFiles/application.cpp
index 365a0a59c..8d9e0a743 100644
--- a/Telegram/SourceFiles/application.cpp
+++ b/Telegram/SourceFiles/application.cpp
@@ -179,6 +179,7 @@ void Application::onAppUpdate(const MTPhelp_AppUpdate &response) {
 		startUpdateCheck();
 	} else {
 		updateThread = new QThread();
+		connect(updateThread, SIGNAL(finished()), updateThread, SLOT(deleteLater()));
 		updateDownloader = new PsUpdateDownloader(updateThread, response.c_help_appUpdate());
 		updateThread->start();
 	}
@@ -201,6 +202,7 @@ void Application::updateGotCurrent() {
 		int32 currentVersion = m.captured(1).toInt();
 		if (currentVersion > AppVersion) {
 			updateThread = new QThread();
+			connect(updateThread, SIGNAL(finished()), updateThread, SLOT(deleteLater()));
 			updateDownloader = new PsUpdateDownloader(updateThread, m.captured(2));
 			updateThread->start();
 		}
@@ -247,7 +249,7 @@ void Application::onUpdateFailed() {
 	if (updateDownloader) {
 		updateDownloader->deleteLater();
 		updateDownloader = 0;
-		if (updateThread) updateThread->deleteLater();
+		if (updateThread) updateThread->quit();
 		updateThread = 0;
 	}
 
@@ -477,7 +479,7 @@ void Application::stopUpdate() {
 	if (updateDownloader) {
 		updateDownloader->deleteLater();
 		updateDownloader = 0;
-		if (updateThread) updateThread->deleteLater();
+		if (updateThread) updateThread->quit();
 		updateThread = 0;
 	}
 }
@@ -775,9 +777,9 @@ Application::~Application() {
 	delete updateReply;
 	delete ::uploader;
 	updateReply = 0;
-	delete updateDownloader;
+	if (updateDownloader) updateDownloader->deleteLater();
 	updateDownloader = 0;
-	delete updateThread;
+	if (updateThread) updateThread->quit();
 	updateThread = 0;
 
 	delete window;
diff --git a/Telegram/SourceFiles/art/sprite.png b/Telegram/SourceFiles/art/sprite.png
index b4a293083..11be67e95 100644
Binary files a/Telegram/SourceFiles/art/sprite.png and b/Telegram/SourceFiles/art/sprite.png differ
diff --git a/Telegram/SourceFiles/art/sprite_200x.png b/Telegram/SourceFiles/art/sprite_200x.png
index 87968e1d6..aecf1f7b1 100644
Binary files a/Telegram/SourceFiles/art/sprite_200x.png and b/Telegram/SourceFiles/art/sprite_200x.png differ
diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp
index 319c73934..5d30e18ea 100644
--- a/Telegram/SourceFiles/historywidget.cpp
+++ b/Telegram/SourceFiles/historywidget.cpp
@@ -711,7 +711,7 @@ void HistoryList::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
 			_menu->addAction(lang(lng_context_forward_selected), historyWidget, SLOT(onForwardSelected()));
 			_menu->addAction(lang(lng_context_delete_selected), historyWidget, SLOT(onDeleteSelected()));
 			_menu->addAction(lang(lng_context_clear_selection), historyWidget, SLOT(onClearSelected()));
-		} else {
+		} else if (item) {
 			if (!_menu) _menu = new ContextMenu(this);
 			if (isUponSelected != -2) {
 				if (canForward) {
@@ -723,6 +723,12 @@ void HistoryList::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
 				}
 			}
 			_menu->addAction(lang(lng_context_select_msg), historyWidget, SLOT(selectMessage()))->setEnabled(true);
+		} else {
+			if (App::mousedItem() && App::mousedItem()->itemType() == HistoryItem::MsgType) {
+				if (!_menu) _menu = new ContextMenu(this);
+				_menu->addAction(lang(lng_context_select_msg), historyWidget, SLOT(selectMessage()))->setEnabled(true);
+				item = App::mousedItem();
+			}
 		}
 		App::contextItem(item);
 	}