diff --git a/Telegram/Resources/style.txt b/Telegram/Resources/style.txt
index c7e3a083b..030b0c9bb 100644
--- a/Telegram/Resources/style.txt
+++ b/Telegram/Resources/style.txt
@@ -1642,5 +1642,5 @@ usernameCancel: flatButton(btnSelectCancel) {
 }
 
 youtubeIcon: sprite(336px, 221px, 60px, 60px);
-instagramIcon: sprite(336px, 283px, 60px, 60px);
+vimeoIcon: sprite(336px, 283px, 60px, 60px);
 locationSize: size(320, 240);
diff --git a/Telegram/Setup.iss b/Telegram/Setup.iss
index 9430e6c86..49068b73b 100644
--- a/Telegram/Setup.iss
+++ b/Telegram/Setup.iss
@@ -25,7 +25,7 @@ DefaultGroupName={#MyAppName}
 AllowNoIcons=yes
 OutputDir=.\..\Win32\Deploy
 OutputBaseFilename=tsetup.{#MyAppVersionZero}
-SetupIconFile=.\SourceFiles\art\iconround256.ico
+SetupIconFile=.\SourceFiles\art\icon256.ico
 UninstallDisplayIcon={app}\Telegram.exe
 Compression=lzma
 SolidCompression=yes         
diff --git a/Telegram/SourceFiles/art/favicon.ico b/Telegram/SourceFiles/art/favicon.ico
index 5f62ac8a6..11474318b 100644
Binary files a/Telegram/SourceFiles/art/favicon.ico and b/Telegram/SourceFiles/art/favicon.ico differ
diff --git a/Telegram/SourceFiles/art/icon.ico b/Telegram/SourceFiles/art/icon.ico
deleted file mode 100644
index e6e430ee1..000000000
Binary files a/Telegram/SourceFiles/art/icon.ico and /dev/null differ
diff --git a/Telegram/SourceFiles/art/icon128.png b/Telegram/SourceFiles/art/icon128.png
new file mode 100644
index 000000000..103c5c910
Binary files /dev/null and b/Telegram/SourceFiles/art/icon128.png differ
diff --git a/Telegram/SourceFiles/art/icon128@2x.png b/Telegram/SourceFiles/art/icon128@2x.png
new file mode 100644
index 000000000..6e09c29dd
Binary files /dev/null and b/Telegram/SourceFiles/art/icon128@2x.png differ
diff --git a/Telegram/SourceFiles/art/icon16.png b/Telegram/SourceFiles/art/icon16.png
new file mode 100644
index 000000000..c15f5a9da
Binary files /dev/null and b/Telegram/SourceFiles/art/icon16.png differ
diff --git a/Telegram/SourceFiles/art/icon16@2x.png b/Telegram/SourceFiles/art/icon16@2x.png
new file mode 100644
index 000000000..214be0fbd
Binary files /dev/null and b/Telegram/SourceFiles/art/icon16@2x.png differ
diff --git a/Telegram/SourceFiles/art/icon2.ico b/Telegram/SourceFiles/art/icon2.ico
new file mode 100644
index 000000000..498c8b8f8
Binary files /dev/null and b/Telegram/SourceFiles/art/icon2.ico differ
diff --git a/Telegram/SourceFiles/art/icon256.ico b/Telegram/SourceFiles/art/icon256.ico
new file mode 100644
index 000000000..33cf4ea80
Binary files /dev/null and b/Telegram/SourceFiles/art/icon256.ico differ
diff --git a/Telegram/SourceFiles/art/icon256.png b/Telegram/SourceFiles/art/icon256.png
new file mode 100644
index 000000000..6e09c29dd
Binary files /dev/null and b/Telegram/SourceFiles/art/icon256.png differ
diff --git a/Telegram/SourceFiles/art/icon256@2x.png b/Telegram/SourceFiles/art/icon256@2x.png
new file mode 100644
index 000000000..019795054
Binary files /dev/null and b/Telegram/SourceFiles/art/icon256@2x.png differ
diff --git a/Telegram/SourceFiles/art/icon32.ico b/Telegram/SourceFiles/art/icon32.ico
new file mode 100644
index 000000000..a7acfad16
Binary files /dev/null and b/Telegram/SourceFiles/art/icon32.ico differ
diff --git a/Telegram/SourceFiles/art/icon32.png b/Telegram/SourceFiles/art/icon32.png
new file mode 100644
index 000000000..214be0fbd
Binary files /dev/null and b/Telegram/SourceFiles/art/icon32.png differ
diff --git a/Telegram/SourceFiles/art/icon32@2x.png b/Telegram/SourceFiles/art/icon32@2x.png
new file mode 100644
index 000000000..eae1706f3
Binary files /dev/null and b/Telegram/SourceFiles/art/icon32@2x.png differ
diff --git a/Telegram/SourceFiles/art/icon48.png b/Telegram/SourceFiles/art/icon48.png
new file mode 100644
index 000000000..74e2d0cc0
Binary files /dev/null and b/Telegram/SourceFiles/art/icon48.png differ
diff --git a/Telegram/SourceFiles/art/icon48@2x.png b/Telegram/SourceFiles/art/icon48@2x.png
new file mode 100644
index 000000000..40dc0000e
Binary files /dev/null and b/Telegram/SourceFiles/art/icon48@2x.png differ
diff --git a/Telegram/SourceFiles/art/icon512.png b/Telegram/SourceFiles/art/icon512.png
new file mode 100644
index 000000000..019795054
Binary files /dev/null and b/Telegram/SourceFiles/art/icon512.png differ
diff --git a/Telegram/SourceFiles/art/icon512@2x.png b/Telegram/SourceFiles/art/icon512@2x.png
new file mode 100644
index 000000000..0972bff34
Binary files /dev/null and b/Telegram/SourceFiles/art/icon512@2x.png differ
diff --git a/Telegram/SourceFiles/art/icon64.png b/Telegram/SourceFiles/art/icon64.png
new file mode 100644
index 000000000..eae1706f3
Binary files /dev/null and b/Telegram/SourceFiles/art/icon64.png differ
diff --git a/Telegram/SourceFiles/art/icon64@2x.png b/Telegram/SourceFiles/art/icon64@2x.png
new file mode 100644
index 000000000..103c5c910
Binary files /dev/null and b/Telegram/SourceFiles/art/icon64@2x.png differ
diff --git a/Telegram/SourceFiles/art/iconbig.png b/Telegram/SourceFiles/art/iconbig.png
deleted file mode 100644
index fb3d3c175..000000000
Binary files a/Telegram/SourceFiles/art/iconbig.png and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconbig128.png b/Telegram/SourceFiles/art/iconbig128.png
deleted file mode 100644
index 32b44a5ea..000000000
Binary files a/Telegram/SourceFiles/art/iconbig128.png and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconround128.png b/Telegram/SourceFiles/art/iconround128.png
deleted file mode 100644
index 79c3efba3..000000000
Binary files a/Telegram/SourceFiles/art/iconround128.png and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconround16.png b/Telegram/SourceFiles/art/iconround16.png
deleted file mode 100644
index 94617bb4c..000000000
Binary files a/Telegram/SourceFiles/art/iconround16.png and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconround256.ico b/Telegram/SourceFiles/art/iconround256.ico
deleted file mode 100644
index 718f5a706..000000000
Binary files a/Telegram/SourceFiles/art/iconround256.ico and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconround256.png b/Telegram/SourceFiles/art/iconround256.png
deleted file mode 100644
index 92566ae16..000000000
Binary files a/Telegram/SourceFiles/art/iconround256.png and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconroundbig.ico b/Telegram/SourceFiles/art/iconroundbig.ico
deleted file mode 100644
index 0d81d1081..000000000
Binary files a/Telegram/SourceFiles/art/iconroundbig.ico and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconroundbig.png b/Telegram/SourceFiles/art/iconroundbig.png
deleted file mode 100644
index 9b249bac3..000000000
Binary files a/Telegram/SourceFiles/art/iconroundbig.png and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconrounddark.bmp b/Telegram/SourceFiles/art/iconrounddark.bmp
deleted file mode 100644
index e09bb6a0e..000000000
Binary files a/Telegram/SourceFiles/art/iconrounddark.bmp and /dev/null differ
diff --git a/Telegram/SourceFiles/art/iconroundfull.png b/Telegram/SourceFiles/art/iconroundfull.png
deleted file mode 100644
index 7576358c3..000000000
Binary files a/Telegram/SourceFiles/art/iconroundfull.png and /dev/null differ
diff --git a/Telegram/SourceFiles/art/sprite.png b/Telegram/SourceFiles/art/sprite.png
index f7c063b2f..b712de59c 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 7136046cb..7ef8f79a6 100644
Binary files a/Telegram/SourceFiles/art/sprite_200x.png and b/Telegram/SourceFiles/art/sprite_200x.png differ
diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp
index 3018a9721..a71c5452c 100644
--- a/Telegram/SourceFiles/history.cpp
+++ b/Telegram/SourceFiles/history.cpp
@@ -3115,9 +3115,10 @@ void HistoryContact::updateFrom(const MTPMessageMedia &media) {
 }
 
 namespace {
-	QRegularExpression reYouTube1(qsl("^(https?://)?(www\\.|m\\.)?youtube\\.com/watch\\?([^#]+&)?v=([a-z0-9_-]+)(&|$)"), QRegularExpression::CaseInsensitiveOption);
-	QRegularExpression reYouTube2(qsl("^(https?://)?(www\\.)?youtu\\.be/([a-z0-9_-]+)(\\?|$)"), QRegularExpression::CaseInsensitiveOption);
-	QRegularExpression reInstagram(qsl("^(https?://)?(www\\.)?instagram\\.com/p/([a-z0-9_-]+)(/|$)"), QRegularExpression::CaseInsensitiveOption);
+	QRegularExpression reYouTube1(qsl("^(https?://)?(www\\.|m\\.)?youtube\\.com/watch\\?([^#]+&)?v=([a-z0-9_-]+)(&[^\\s]*)?$"), QRegularExpression::CaseInsensitiveOption);
+	QRegularExpression reYouTube2(qsl("^(https?://)?(www\\.)?youtu\\.be/([a-z0-9_-]+)([/\\?][^\\s]*)?$"), QRegularExpression::CaseInsensitiveOption);
+	QRegularExpression reInstagram(qsl("^(https?://)?(www\\.)?instagram\\.com/p/([a-z0-9_-]+)([/\\?][^\\s]*)?$"), QRegularExpression::CaseInsensitiveOption);
+	QRegularExpression reVimeo(qsl("^(https?://)?(www\\.)?vimeo\\.com/([0-9]+)([/\\?][^\\s]*)?$"), QRegularExpression::CaseInsensitiveOption);
 
 	ImageLinkManager manager;
 }
@@ -3183,6 +3184,11 @@ void ImageLinkManager::getData(ImageLinkData *data) {
 		QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));
 		dataLoadings[reply] = data;
 	} break;
+	case VimeoLink: {
+		url = qsl("https://vimeo.com/api/v2/video/") + data->id.mid(6) + qsl(".json");
+		QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));
+		dataLoadings[reply] = data;
+	} break;
 	case InstagramLink: {
 		//url = qsl("https://api.instagram.com/oembed?url=http://instagr.am/p/") + data->id.mid(10) + '/';
 		url = qsl("https://instagram.com/p/") + data->id.mid(10) + qsl("/media/?size=l");
@@ -3262,9 +3268,9 @@ void ImageLinkManager::onFinished(QNetworkReply *reply) {
 			DEBUG_LOG(("JSON Error: Bad json received in onFinished() for image link"));
 			return onFailed(reply);
 		}
-		QJsonObject obj = doc.object();
 		switch (d->type) {
 		case YouTubeLink: {
+			QJsonObject obj = doc.object();
 			QString thumb;
 			int32 seconds = 0;
 			QJsonObject::const_iterator entryIt = obj.constFind(qsl("entry"));
@@ -3360,6 +3366,39 @@ void ImageLinkManager::onFinished(QNetworkReply *reply) {
 				imageLoadings.insert(manager->get(QNetworkRequest(thumb)), d);
 			}
 		} break;
+		
+		case VimeoLink: {
+			QString thumb;
+			int32 seconds = 0;
+			QJsonArray arr = doc.array();
+			if (!arr.isEmpty()) {
+				QJsonObject obj = arr.at(0).toObject();
+				QJsonObject::const_iterator titleIt = obj.constFind(qsl("title"));
+				if (titleIt != obj.constEnd() && titleIt.value().isString()) {
+					d->title = titleIt.value().toString();
+				}
+				QJsonObject::const_iterator thumbnailsIt = obj.constFind(qsl("thumbnail_large"));
+				if (thumbnailsIt != obj.constEnd() && thumbnailsIt.value().isString()) {
+					thumb = thumbnailsIt.value().toString();
+				}
+				QJsonObject::const_iterator secondsIt = obj.constFind(qsl("duration"));
+				if (secondsIt != obj.constEnd()) {
+					if (secondsIt.value().isDouble()) {
+						seconds = qRound(secondsIt.value().toDouble());
+					} else if (secondsIt.value().isString()) {
+						seconds = qRound(secondsIt.value().toString().toDouble());
+					}
+				}
+			}
+			if (seconds > 0) {
+				d->duration = formatDurationText(seconds);
+			}
+			if (thumb.isEmpty()) {
+				failed(d);
+			} else {
+				imageLoadings.insert(manager->get(QNetworkRequest(thumb)), d);
+			}
+		} break;
 
 		case InstagramLink: failed(d); break;
 		case GoogleMapsLink: failed(d); break;
@@ -3430,8 +3469,11 @@ HistoryImageLink::HistoryImageLink(const QString &url, int32 width) : HistoryMed
 	if (url.startsWith(qsl("location:"))) {
 		QString lnk = qsl("https://maps.google.com/maps?q=") + url.mid(9) + qsl("&ll=") + url.mid(9) + qsl("&z=17");
 		link.reset(new TextLink(lnk));
+
 		data = App::imageLink(url, GoogleMapsLink, lnk);
 	} else {
+		link.reset(new TextLink(url));
+
 		int matchIndex = 4;
 		QRegularExpressionMatch m = reYouTube1.match(url);
 		if (!m.hasMatch()) {
@@ -3439,16 +3481,19 @@ HistoryImageLink::HistoryImageLink(const QString &url, int32 width) : HistoryMed
 			matchIndex = 3;
 		}
 		if (m.hasMatch()) {
-			link.reset(new TextLink(url));
 			data = App::imageLink(qsl("youtube:") + m.captured(matchIndex), YouTubeLink, url);
 		} else {
-			m = reInstagram.match(url);
+			m = reVimeo.match(url);
 			if (m.hasMatch()) {
-				link.reset(new TextLink(url));
-				data = App::imageLink(qsl("instagram:") + m.captured(3), InstagramLink, url);
-				data->title = qsl("instagram.com/p/") + m.captured(3);
+				data = App::imageLink(qsl("vimeo:") + m.captured(3), VimeoLink, url);
 			} else {
-				data = 0;
+				m = reInstagram.match(url);
+				if (m.hasMatch()) {
+					data = App::imageLink(qsl("instagram:") + m.captured(3), InstagramLink, url);
+					data->title = qsl("instagram.com/p/") + m.captured(3);
+				} else {
+					data = 0;
+				}
 			}
 		}
 	}
@@ -3458,6 +3503,7 @@ int32 HistoryImageLink::fullWidth() const {
 	if (data) {
 		switch (data->type) {
 		case YouTubeLink: return 640;
+		case VimeoLink: return 640;
 		case InstagramLink: return 640;
 		case GoogleMapsLink: return st::locationSize.width();
 		}
@@ -3469,6 +3515,7 @@ int32 HistoryImageLink::fullHeight() const {
 	if (data) {
 		switch (data->type) {
 		case YouTubeLink: return 480;
+		case VimeoLink: return 480;
 		case InstagramLink: return 640;
 		case GoogleMapsLink: return st::locationSize.height();
 		}
@@ -3523,7 +3570,7 @@ void HistoryImageLink::draw(QPainter &p, const HistoryItem *parent, bool selecte
 	if (data) {
 		switch (data->type) {
 		case YouTubeLink: p.drawPixmap(QPoint((width - st::youtubeIcon.pxWidth()) / 2, (_height - st::youtubeIcon.pxHeight()) / 2), App::sprite(), st::youtubeIcon); break;
-//		case InstagramLink: p.drawPixmap(QPoint((width - st::instagramIcon.pxWidth()) / 2, (_height - st::instagramIcon.pxHeight()) / 2), App::sprite(), st::instagramIcon); break;
+		case VimeoLink: p.drawPixmap(QPoint((width - st::youtubeIcon.pxWidth()) / 2, (_height - st::youtubeIcon.pxHeight()) / 2), App::sprite(), st::vimeoIcon); break;
 		}
 		if (!data->title.isEmpty() || !data->duration.isEmpty()) {
 			p.fillRect(0, 0, width, st::msgDateFont->height + 2 * st::msgDateImgPadding.y(), st::msgDateImgBg->b);
@@ -3608,6 +3655,7 @@ const QString HistoryImageLink::inDialogsText() const {
 	if (data) {
 		switch (data->type) {
 		case YouTubeLink: return qsl("YouTube Video");
+		case VimeoLink: return qsl("Vimeo Video");
 		case InstagramLink: return qsl("Instagram Link");
 		case GoogleMapsLink: return lang(lng_maps_point);
 		}
@@ -3619,6 +3667,7 @@ const QString HistoryImageLink::inHistoryText() const {
 	if (data) {
 		switch (data->type) {
 		case YouTubeLink: return qsl("[ YouTube Video : ") + link->text() + qsl(" ]");
+		case VimeoLink: return qsl("[ Vimeo Video : ") + link->text() + qsl(" ]");
 		case InstagramLink: return qsl("[ Instagram Link : ") + link->text() + qsl(" ]");
 		case GoogleMapsLink: return qsl("[ ") + lang(lng_maps_point) + qsl(" : ") + link->text() + qsl(" ]");
 		}
@@ -3698,7 +3747,7 @@ void HistoryMessage::initMedia(const MTPMessageMedia &media, QString &currentTex
 	switch (media.type()) {
 	case mtpc_messageMediaEmpty: {
 		QString lnk = currentText.trimmed();
-		if (reYouTube1.match(currentText).hasMatch() || reYouTube2.match(currentText).hasMatch() || reInstagram.match(currentText).hasMatch()) {
+		if (reYouTube1.match(currentText).hasMatch() || reYouTube2.match(currentText).hasMatch() || reInstagram.match(currentText).hasMatch() || reVimeo.match(currentText).hasMatch()) {
 			_media = new HistoryImageLink(lnk);
 			currentText = QString();
 		}
diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h
index ff268a74a..ebc685c7e 100644
--- a/Telegram/SourceFiles/history.h
+++ b/Telegram/SourceFiles/history.h
@@ -1475,6 +1475,7 @@ void deinitImageLinkManager();
 enum ImageLinkType {
 	InvalidImageLink = 0,
 	YouTubeLink,
+	VimeoLink,
 	InstagramLink,
 	GoogleMapsLink
 };
diff --git a/Telegram/SourceFiles/logs.cpp b/Telegram/SourceFiles/logs.cpp
index 229afd516..1d6affa31 100644
--- a/Telegram/SourceFiles/logs.cpp
+++ b/Telegram/SourceFiles/logs.cpp
@@ -73,7 +73,7 @@ void debugLogWrite(const char *file, int32 line, const QString &v) {
 		(*debugLogStream) << msg;
 		debugLogStream->flush();
 #ifdef Q_OS_WIN
-		OutputDebugString(reinterpret_cast<const wchar_t *>(msg.utf16()));
+//		OutputDebugString(reinterpret_cast<const wchar_t *>(msg.utf16()));
 #elif defined Q_OS_MAC
         objc_outputDebugString(msg);
 #elif defined Q_OS_LINUX && defined _DEBUG
diff --git a/Telegram/SourceFiles/pspecific_linux.cpp b/Telegram/SourceFiles/pspecific_linux.cpp
index e7b305281..67a1b5365 100644
--- a/Telegram/SourceFiles/pspecific_linux.cpp
+++ b/Telegram/SourceFiles/pspecific_linux.cpp
@@ -50,7 +50,7 @@ namespace {
 };
 
 PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent),
-posInited(false), trayIcon(0), trayIconMenu(0), icon256(qsl(":/gui/art/iconround256.png")), wndIcon(QPixmap::fromImage(icon256)) {
+posInited(false), trayIcon(0), trayIconMenu(0), icon256(qsl(":/gui/art/icon256.png")), wndIcon(QPixmap::fromImage(icon256)) {
     connect(&psIdleTimer, SIGNAL(timeout()), this, SLOT(psIdleTimeout()));
     psIdleTimer.setSingleShot(false);
 }
diff --git a/Telegram/SourceFiles/pspecific_mac.cpp b/Telegram/SourceFiles/pspecific_mac.cpp
index 542f3d06e..793a78ad2 100644
--- a/Telegram/SourceFiles/pspecific_mac.cpp
+++ b/Telegram/SourceFiles/pspecific_mac.cpp
@@ -71,7 +71,7 @@ void MacPrivate::notifyReplied(unsigned long long peer, const char *str) {
 }
 
 PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent),
-posInited(false), trayIcon(0), trayIconMenu(0), icon256(qsl(":/gui/art/iconround256.png")), wndIcon(QPixmap(qsl(":/gui/art/iconbig128.png"))),
+posInited(false), trayIcon(0), trayIconMenu(0), icon256(qsl(":/gui/art/icon256.png")), wndIcon(QPixmap(qsl(":/gui/art/icon256.png"))),
 psLogout(0), psUndo(0), psRedo(0), psCut(0), psCopy(0), psPaste(0), psDelete(0), psSelectAll(0), psContacts(0), psNewGroup(0), psShowTelegram(0) {
 	QImage tray(qsl(":/gui/art/osxtray.png"));
 	trayImg = tray.copy(0, cRetina() ? 0 : tray.width() / 2, tray.width() / (cRetina() ? 2 : 4), tray.width() / (cRetina() ? 2 : 4));
diff --git a/Telegram/SourceFiles/pspecific_wnd.cpp b/Telegram/SourceFiles/pspecific_wnd.cpp
index 0f8fa9eca..474ba7da1 100644
--- a/Telegram/SourceFiles/pspecific_wnd.cpp
+++ b/Telegram/SourceFiles/pspecific_wnd.cpp
@@ -860,7 +860,7 @@ namespace {
 
 };
 
-PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent), ps_hWnd(0), ps_menu(0), icon256(qsl(":/gui/art/iconround256.png")), wndIcon(QPixmap::fromImage(icon256)),
+PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent), ps_hWnd(0), ps_menu(0), icon256(qsl(":/gui/art/icon256.png")), wndIcon(QPixmap::fromImage(icon256)),
 	ps_iconBig(0), ps_iconSmall(0), ps_iconOverlay(0), trayIcon(0), trayIconMenu(0), posInited(false), ps_tbHider_hWnd(createTaskbarHider()), psIdle(false) {
 	tbCreatedMsgId = RegisterWindowMessage(L"TaskbarButtonCreated");
 	connect(&psIdleTimer, SIGNAL(timeout()), this, SLOT(psIdleTimeout()));
diff --git a/Telegram/SourceFiles/telegram.qrc b/Telegram/SourceFiles/telegram.qrc
index 8bc2e1f1b..f31cda881 100644
--- a/Telegram/SourceFiles/telegram.qrc
+++ b/Telegram/SourceFiles/telegram.qrc
@@ -17,8 +17,7 @@
         <file>art/emoji_150x.png</file>
         <file>art/emoji_200x.png</file>
         <file>art/blank.gif</file>
-        <file>art/iconround256.png</file>
-		<file>art/iconbig128.png</file>
+        <file>art/icon256.png</file>
         <file>art/fonts/DejaVuSans.ttf</file>
 		<file>art/osxtray.png</file>
     </qresource>
diff --git a/Telegram/SourceFiles/telegram_linux.qrc b/Telegram/SourceFiles/telegram_linux.qrc
index ac5e08300..8add6bf9a 100644
--- a/Telegram/SourceFiles/telegram_linux.qrc
+++ b/Telegram/SourceFiles/telegram_linux.qrc
@@ -17,7 +17,7 @@
         <file>art/emoji_150x.png</file>
         <file>art/emoji_200x.png</file>
         <file>art/blank.gif</file>
-        <file>art/iconround256.png</file>
+        <file>art/icon256.png</file>
         <file>art/fonts/DejaVuSans.ttf</file>
     </qresource>
     <qresource prefix="/ava">
diff --git a/Telegram/SourceFiles/window.cpp b/Telegram/SourceFiles/window.cpp
index c7aecc906..5f694869a 100644
--- a/Telegram/SourceFiles/window.cpp
+++ b/Telegram/SourceFiles/window.cpp
@@ -88,7 +88,7 @@ NotifyWindow::NotifyWindow(HistoryItem *msg, int32 x, int32 y) : history(msg->hi
 	inputTimer.setSingleShot(true);
 	connect(&inputTimer, SIGNAL(timeout()), this, SLOT(checkLastInput()));
 
-	connect(&close, SIGNAL(clicked()), this, SLOT(unlinkHistory()));
+	connect(&close, SIGNAL(clicked()), this, SLOT(unlinkHistoryAndNotify()));
 	close.setAcceptBoth(true);
 	close.move(st::notifyWidth - st::notifyClose.width - st::notifyClosePos.x(), st::notifyClosePos.y());
 	close.show();
@@ -228,16 +228,20 @@ void NotifyWindow::updatePeerPhoto() {
 
 void NotifyWindow::itemRemoved(HistoryItem *del) {
 	if (item == del) {
-		unlinkHistory();
+		unlinkHistoryAndNotify();
 	}
 }
 
+void NotifyWindow::unlinkHistoryAndNotify() {
+	unlinkHistory();
+	App::wnd()->notifyShowNext();
+}
+
 void NotifyWindow::unlinkHistory(History *hist) {
 	if (!hist || hist == history) {
 		animHide(st::notifyFastAnim, st::notifyFastAnimFunc);
 		history = 0;
 		item = 0;
-		App::wnd()->notifyShowNext();
 	}
 }
 
@@ -258,7 +262,7 @@ void NotifyWindow::startHiding() {
 void NotifyWindow::mousePressEvent(QMouseEvent *e) {
 	if (!history) return;
 	if (e->button() == Qt::RightButton) {
-		unlinkHistory();
+		unlinkHistoryAndNotify();
 	} else if (history) {
 		App::wnd()->showFromTray();
 		App::wnd()->hideSettings();
@@ -1045,6 +1049,7 @@ void Window::notifyClear(History *history) {
 	psClearNotifies(history->peer->id);
 	notifyWhenMaps.remove(history);
 	notifyWhenAlerts.remove(history);
+	notifyShowNext();
 }
 
 void Window::notifyClearFast() {
diff --git a/Telegram/SourceFiles/window.h b/Telegram/SourceFiles/window.h
index e01bd4c06..93fedf675 100644
--- a/Telegram/SourceFiles/window.h
+++ b/Telegram/SourceFiles/window.h
@@ -82,6 +82,8 @@ public:
 		return history ? _index : -1;
 	}
 
+	void unlinkHistory(History *hist = 0);
+
 	~NotifyWindow();
 
 public slots:
@@ -89,7 +91,7 @@ public slots:
 	void hideByTimer();
 	void checkLastInput();
 
-	void unlinkHistory(History *hist = 0);
+	void unlinkHistoryAndNotify();
 
 private:
 
diff --git a/Telegram/Telegram.rc b/Telegram/Telegram.rc
index 77ad32607..7531acfdc 100644
Binary files a/Telegram/Telegram.rc and b/Telegram/Telegram.rc differ
diff --git a/Telegram/Telegram.vcxproj b/Telegram/Telegram.vcxproj
index 98b7965a2..bfef80edf 100644
--- a/Telegram/Telegram.vcxproj
+++ b/Telegram/Telegram.vcxproj
@@ -1742,7 +1742,8 @@
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
-    <Image Include="SourceFiles\art\iconround256.ico" />
+    <Image Include="sourcefiles\art\icon2.ico" />
+    <Image Include="SourceFiles\art\icon256.ico" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Telegram.rc" />
diff --git a/Telegram/Telegram.vcxproj.filters b/Telegram/Telegram.vcxproj.filters
index c06ca8714..351fbdb4f 100644
--- a/Telegram/Telegram.vcxproj.filters
+++ b/Telegram/Telegram.vcxproj.filters
@@ -1022,7 +1022,8 @@
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
-    <Image Include="SourceFiles\art\iconround256.ico" />
+    <Image Include="SourceFiles\art\icon256.ico" />
+    <Image Include="sourcefiles\art\icon2.ico" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="Telegram.rc" />
diff --git a/Telegram/Telegram.xcodeproj/qt_preprocess.mak b/Telegram/Telegram.xcodeproj/qt_preprocess.mak
index c483fdf30..975226a37 100644
--- a/Telegram/Telegram.xcodeproj/qt_preprocess.mak
+++ b/Telegram/Telegram.xcodeproj/qt_preprocess.mak
@@ -62,7 +62,7 @@ GeneratedFiles/qrc_telegram.cpp: SourceFiles/telegram.qrc \
 		SourceFiles/art/bg.png \
 		SourceFiles/art/sprite_150x.png \
 		SourceFiles/art/sprite.png \
-		SourceFiles/art/iconround256.png \
+		SourceFiles/art/icon256.png \
 		SourceFiles/art/emoji_150x.png \
 		SourceFiles/art/bg_150x.png \
 		SourceFiles/art/sprite_200x.png \
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128.png
index 95c2e04ef..103c5c910 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png
index 653ac0864..6e09c29dd 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16.png
index e61459132..c15f5a9da 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png
index 57a9fd01b..214be0fbd 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256.png
index 653ac0864..6e09c29dd 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png
index 291e1bb78..019795054 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32.png
index 57a9fd01b..214be0fbd 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png
index 422848804..eae1706f3 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512.png
index 291e1bb78..019795054 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512.png differ
diff --git a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png
index 9b249bac3..0972bff34 100644
Binary files a/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png and b/Telegram/Telegram/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128.png
index 95c2e04ef..103c5c910 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128@2x.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128@2x.png
index 653ac0864..6e09c29dd 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128@2x.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_128x128@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16.png
index e61459132..c15f5a9da 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16@2x.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16@2x.png
index 57a9fd01b..214be0fbd 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16@2x.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_16x16@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256.png
index 653ac0864..6e09c29dd 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256@2x.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256@2x.png
index 291e1bb78..019795054 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256@2x.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_256x256@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32.png
index 57a9fd01b..214be0fbd 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32@2x.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32@2x.png
index 422848804..eae1706f3 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32@2x.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_32x32@2x.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512.png
index 291e1bb78..019795054 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512.png differ
diff --git a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512@2x.png b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512@2x.png
index 9b249bac3..0972bff34 100644
Binary files a/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512@2x.png and b/Telegram/Telegram/Images.xcassets/Icon.iconset/icon_512x512@2x.png differ
diff --git a/Telegram/icon_128x128@2x.png b/Telegram/icon_128x128@2x.png
deleted file mode 100644
index 92566ae16..000000000
Binary files a/Telegram/icon_128x128@2x.png and /dev/null differ
diff --git a/Telegram/icon_256x256.png b/Telegram/icon_256x256.png
deleted file mode 100644
index 92566ae16..000000000
Binary files a/Telegram/icon_256x256.png and /dev/null differ
diff --git a/Telegram/iconround256.ico b/Telegram/iconround256.ico
deleted file mode 100644
index 718f5a706..000000000
Binary files a/Telegram/iconround256.ico and /dev/null differ
diff --git a/Telegram/iconround256.png b/Telegram/iconround256.png
deleted file mode 100644
index 92566ae16..000000000
Binary files a/Telegram/iconround256.png and /dev/null differ
diff --git a/Telegram/resource.h b/Telegram/resource.h
index 351dc5e4c..fb440adac 100644
Binary files a/Telegram/resource.h and b/Telegram/resource.h differ