diff --git a/Telegram/SourceFiles/application.cpp b/Telegram/SourceFiles/application.cpp
index 163a23c76..a6fdfaec5 100644
--- a/Telegram/SourceFiles/application.cpp
+++ b/Telegram/SourceFiles/application.cpp
@@ -681,7 +681,7 @@ void Application::checkMapVersion() {
 		if (Local::oldMapVersion()) {
 			QString versionFeatures;
 			if (cDevVersion() && Local::oldMapVersion() < 8058) {
-				versionFeatures = QString::fromUtf8("\xe2\x80\x94 Limited channels support added, see https://telegram.org/blog/channels\n\xe2\x80\x94 Bug fixes and other minor improvements");// .replace('@', qsl("@") + QChar(0x200D));
+				versionFeatures = QString::fromUtf8("\xe2\x80\x94 Limited channels support added\n\xe2\x80\x94 Bug fixes and other minor improvements\n\nMore info about channels here:\nhttps://telegram.org/blog/channels");// .replace('@', qsl("@") + QChar(0x200D));
 			} else if (Local::oldMapVersion() < 8056) {
 				versionFeatures = lang(lng_new_version_text).trimmed();
 			} else {
diff --git a/Telegram/SourceFiles/boxes/contactsbox.cpp b/Telegram/SourceFiles/boxes/contactsbox.cpp
index 40b4b7e3c..8ce6d1174 100644
--- a/Telegram/SourceFiles/boxes/contactsbox.cpp
+++ b/Telegram/SourceFiles/boxes/contactsbox.cpp
@@ -734,8 +734,8 @@ void ContactsInner::peopleReceived(const QString &query, const QVector<MTPPeer>
 			PeerData *p = App::peer(peerId);
 			if (!p) continue;
 
-			if ((!p->isUser() || p->asUser()->botInfo && p->asUser()->botInfo->cantJoinGroups) && (_chat || _creating != CreatingGroupNone)) continue; // skip bot's that can't be invited to groups
-			if (p->isUser() && p->asUser()->botInfo && _creating == CreatingGroupChannel) continue; // skip bots in channels
+			if ((!p->isUser() || (p->asUser()->botInfo && p->asUser()->botInfo->cantJoinGroups)) && (_chat || _creating != CreatingGroupNone)) continue; // skip bot's that can't be invited to groups
+			if (p->isUser() && p->asUser()->botInfo && _channel) continue; // skip bots in channels
 
 			ContactData *d = new ContactData();
 			_byUsernameDatas.push_back(d);
diff --git a/Telegram/SourceFiles/gui/flatinput.cpp b/Telegram/SourceFiles/gui/flatinput.cpp
index 357765fba..8a3a364c9 100644
--- a/Telegram/SourceFiles/gui/flatinput.cpp
+++ b/Telegram/SourceFiles/gui/flatinput.cpp
@@ -434,8 +434,8 @@ a_placeholderFg(st.placeholderFg->c),
 _placeholderFgAnim(animFunc(this, &InputField::placeholderFgStep)),
 _placeholderShiftAnim(animFunc(this, &InputField::placeholderShiftStep)),
 
-a_borderFg(st.borderFg->c),
 a_borderOpacityActive(0),
+a_borderFg(st.borderFg->c),
 _borderAnim(animFunc(this, &InputField::borderStep)),
 
 _focused(false), _error(false),
diff --git a/Telegram/SourceFiles/history.cpp b/Telegram/SourceFiles/history.cpp
index e9339bf93..b67de76f9 100644
--- a/Telegram/SourceFiles/history.cpp
+++ b/Telegram/SourceFiles/history.cpp
@@ -7384,7 +7384,7 @@ QString HistoryServiceMsg::inReplyText() const {
 	return result.trimmed().startsWith(from()->name) ? result.trimmed().mid(from()->name.size()).trimmed() : result;
 }
 
-void HistoryServiceMsg::setText(const QString &text) {
+void HistoryServiceMsg::setServiceText(const QString &text) {
 	_text.setText(st::msgServiceFont, text, _historySrvOptions);
 	initDimensions();
 }
@@ -7600,7 +7600,7 @@ bool HistoryGroup::decrementCount() {
 }
 
 void HistoryGroup::updateText() {
-	setText(lng_channel_comments_count(lt_count, _count)/* + qsl(" (%1 .. %2)").arg(_minId).arg(_maxId)*/);
+	setServiceText(lng_channel_comments_count(lt_count, _count)/* + qsl(" (%1 .. %2)").arg(_minId).arg(_maxId)*/);
 }
 
 HistoryCollapse::HistoryCollapse(History *history, HistoryBlock *block, MsgId wasMinId, const QDateTime &date) :
@@ -7618,7 +7618,7 @@ void HistoryCollapse::getState(TextLinkPtr &lnk, HistoryCursorState &state, int3
 
 HistoryJoined::HistoryJoined(History *history, HistoryBlock *block, const QDateTime &inviteDate, UserData *inviter, int32 flags) :
 HistoryServiceMsg(history, block, clientMsgId(), inviteDate, QString(), flags) {
-	if (inviter->id == MTP::authedId()) {
+	if (peerToUser(inviter->id) == MTP::authedId()) {
 		_text.setText(st::msgServiceFont, lang(lng_action_you_joined), _historySrvOptions);
 	} else {
 		_text.setText(st::msgServiceFont, lng_action_add_you(lt_from, textcmdLink(1, inviter->name)), _historySrvOptions);
diff --git a/Telegram/SourceFiles/history.h b/Telegram/SourceFiles/history.h
index f84de996e..3286aaf2e 100644
--- a/Telegram/SourceFiles/history.h
+++ b/Telegram/SourceFiles/history.h
@@ -1742,7 +1742,7 @@ public:
 		return _media ? _media->animating() : false;
 	}
 
-	void setText(const QString &text);
+	void setServiceText(const QString &text);
 
 	~HistoryServiceMsg();
 
diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp
index 0b405373a..3a2757f81 100644
--- a/Telegram/SourceFiles/historywidget.cpp
+++ b/Telegram/SourceFiles/historywidget.cpp
@@ -2302,8 +2302,8 @@ HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent)
 , _replyReturn(0)
 , _stickersUpdateRequest(0)
 , _peer(0)
-, _channel(NoChannel)
 , _clearPeer(0)
+, _channel(NoChannel)
 , _showAtMsgId(0)
 , _fixedInScrollMsgId(0)
 , _fixedInScrollMsgTop(0)
diff --git a/Telegram/SourceFiles/profilewidget.cpp b/Telegram/SourceFiles/profilewidget.cpp
index 338937d7c..1674cfbbb 100644
--- a/Telegram/SourceFiles/profilewidget.cpp
+++ b/Telegram/SourceFiles/profilewidget.cpp
@@ -47,8 +47,8 @@ ProfileInner::ProfileInner(ProfileWidget *profile, ScrollArea *scroll, const Pee
 	_invitationLink(this, qsl("telegram.me/joinchat/")),
 	_botSettings(this, lang(lng_profile_bot_settings)),
 	_botHelp(this, lang(lng_profile_bot_help)),
-	_editLink(this, lang((_peerChannel && _peerChannel->isPublic()) ? lng_profile_edit_public_link : lng_profile_create_public_link)),
 	_username(this, qsl("https://telegram.me/") + (_peerChannel ? _peerChannel->username : QString())),
+	_editLink(this, lang((_peerChannel && _peerChannel->isPublic()) ? lng_profile_edit_public_link : lng_profile_create_public_link)),
 
 	// about
 	_about(st::wndMinWidth - st::profilePadding.left() - st::profilePadding.right()),
diff --git a/Telegram/SourceFiles/pspecific_mac.cpp b/Telegram/SourceFiles/pspecific_mac.cpp
index 1ff0c01c8..9586da73a 100644
--- a/Telegram/SourceFiles/pspecific_mac.cpp
+++ b/Telegram/SourceFiles/pspecific_mac.cpp
@@ -69,7 +69,7 @@ void MacPrivate::notifyClicked(unsigned long long peer, int msgid) {
 		App::wnd()->notifyClear();
 	} else {
 		App::wnd()->hideSettings();
-		bool tomsg = history->peer->chat && (msgid > 0);
+		bool tomsg = !history->peer->isUser() && (msgid > 0);
 		if (tomsg) {
 			HistoryItem *item = App::histItemById(peerToChannel(PeerId(peer)), MsgId(msgid));
 			if (!item || !item->notifyByFrom()) {
@@ -84,12 +84,12 @@ void MacPrivate::notifyClicked(unsigned long long peer, int msgid) {
 void MacPrivate::notifyReplied(unsigned long long peer, int msgid, const char *str) {
     History *history = App::history(PeerId(peer));
     
-	App::main()->sendMessage(history, QString::fromUtf8(str), (msgid > 0 && history->peer->chat) ? msgid : 0, false);
+	App::main()->sendMessage(history, QString::fromUtf8(str), (msgid > 0 && !history->peer->isUser()) ? msgid : 0, false);
 }
 
 PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent),
 posInited(false), trayIcon(0), trayIconMenu(0), icon256(qsl(":/gui/art/icon256.png")), iconbig256(qsl(":/gui/art/iconbig256.png")), wndIcon(QPixmap::fromImage(iconbig256, Qt::ColorOnly)),
-psLogout(0), psUndo(0), psRedo(0), psCut(0), psCopy(0), psPaste(0), psDelete(0), psSelectAll(0), psContacts(0), psAddContact(0), psNewGroup(0), psShowTelegram(0) {
+psLogout(0), psUndo(0), psRedo(0), psCut(0), psCopy(0), psPaste(0), psDelete(0), psSelectAll(0), psContacts(0), psAddContact(0), psNewGroup(0), psNewChannel(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));
 	trayImgSel = tray.copy(tray.width() / (cRetina() ? 2 : 4), cRetina() ? 0 : tray.width() / 2, tray.width() / (cRetina() ? 2 : 4), tray.width() / (cRetina() ? 2 : 4));
@@ -444,6 +444,7 @@ void PsMainWindow::psMacUpdateMenu() {
 	_forceDisabled(psContacts, !isLogged || App::passcoded());
 	_forceDisabled(psAddContact, !isLogged || App::passcoded());
 	_forceDisabled(psNewGroup, !isLogged || App::passcoded());
+	_forceDisabled(psNewChannel, !isLogged || App::passcoded());
 	_forceDisabled(psShowTelegram, App::wnd()->isActive(false));
 }
 
diff --git a/Telegram/SourceFiles/pspecific_mac.h b/Telegram/SourceFiles/pspecific_mac.h
index b7664d2dd..a2342610e 100644
--- a/Telegram/SourceFiles/pspecific_mac.h
+++ b/Telegram/SourceFiles/pspecific_mac.h
@@ -136,7 +136,7 @@ private:
 	mutable QTimer psIdleTimer;
 
 	QMenuBar psMainMenu;
-	QAction *psLogout, *psUndo, *psRedo, *psCut, *psCopy, *psPaste, *psDelete, *psSelectAll, *psContacts, *psAddContact, *psNewGroup, *psShowTelegram;
+	QAction *psLogout, *psUndo, *psRedo, *psCut, *psCopy, *psPaste, *psDelete, *psSelectAll, *psContacts, *psAddContact, *psNewGroup, *psNewChannel, *psShowTelegram;
 
 };
 
diff --git a/Telegram/SourceFiles/settings.h b/Telegram/SourceFiles/settings.h
index e2dfa9f42..0e14a422f 100644
--- a/Telegram/SourceFiles/settings.h
+++ b/Telegram/SourceFiles/settings.h
@@ -311,7 +311,7 @@ DeclareSetting(int, OtherOnline);
 
 DeclareSetting(float64, SongVolume);
 
-struct PeerData;
+class PeerData;
 typedef QMap<PeerData*, QDateTime> SavedPeers;
 typedef QMultiMap<QDateTime, PeerData*> SavedPeersByTime;
 DeclareRefSetting(SavedPeers, SavedPeers);