diff --git a/Telegram/SourceFiles/history/history_top_bar_widget.cpp b/Telegram/SourceFiles/history/history_top_bar_widget.cpp
index 2ea80a1d35..0b6b30fe81 100644
--- a/Telegram/SourceFiles/history/history_top_bar_widget.cpp
+++ b/Telegram/SourceFiles/history/history_top_bar_widget.cpp
@@ -380,6 +380,7 @@ void HistoryTopBarWidget::backClicked() {
 void HistoryTopBarWidget::setHistoryPeer(PeerData *historyPeer) {
 	if (_historyPeer != historyPeer) {
 		_historyPeer = historyPeer;
+		_back->clearState();
 		update();
 
 		updateUnreadBadge();
diff --git a/Telegram/SourceFiles/ui/abstract_button.h b/Telegram/SourceFiles/ui/abstract_button.h
index 0bf184cb41..d1c63f9bdb 100644
--- a/Telegram/SourceFiles/ui/abstract_button.h
+++ b/Telegram/SourceFiles/ui/abstract_button.h
@@ -37,7 +37,7 @@ public:
 	}
 
 	void setDisabled(bool disabled = true);
-	void clearState();
+	virtual void clearState();
 	bool isOver() const {
 		return _state & StateFlag::Over;
 	}
diff --git a/Telegram/SourceFiles/ui/widgets/buttons.cpp b/Telegram/SourceFiles/ui/widgets/buttons.cpp
index 2a45b63648..7a581f363f 100644
--- a/Telegram/SourceFiles/ui/widgets/buttons.cpp
+++ b/Telegram/SourceFiles/ui/widgets/buttons.cpp
@@ -63,10 +63,19 @@ void LinkButton::onStateChanged(State was, StateChangeSource source) {
 	update();
 }
 
-RippleButton::RippleButton(QWidget *parent, const style::RippleAnimation &st) : AbstractButton(parent)
+RippleButton::RippleButton(QWidget *parent, const style::RippleAnimation &st)
+: AbstractButton(parent)
 , _st(st) {
 }
 
+void RippleButton::clearState() {
+	AbstractButton::clearState();
+	if (_ripple) {
+		_ripple.reset();
+		update();
+	}
+}
+
 void RippleButton::setForceRippled(
 		bool rippled,
 		anim::type animated) {
@@ -134,10 +143,6 @@ QPoint RippleButton::prepareRippleStartPosition() const {
 	return mapFromGlobal(QCursor::pos());
 }
 
-void RippleButton::resetRipples() {
-	_ripple.reset();
-}
-
 RippleButton::~RippleButton() = default;
 
 FlatButton::FlatButton(QWidget *parent, const QString &text, const style::FlatButton &st) : RippleButton(parent, st.ripple)
diff --git a/Telegram/SourceFiles/ui/widgets/buttons.h b/Telegram/SourceFiles/ui/widgets/buttons.h
index 5fd0f3bb7e..2e5fcbc79f 100644
--- a/Telegram/SourceFiles/ui/widgets/buttons.h
+++ b/Telegram/SourceFiles/ui/widgets/buttons.h
@@ -65,6 +65,8 @@ public:
 		return QPoint(-0x3FFFFFFF, -0x3FFFFFFF);
 	}
 
+	void clearState() override;
+
 	~RippleButton();
 
 protected:
@@ -74,7 +76,6 @@ protected:
 
 	virtual QImage prepareRippleMask() const;
 	virtual QPoint prepareRippleStartPosition() const;
-	void resetRipples();
 
 private:
 	void ensureRipple();