diff --git a/src/client/components/timeline.vue b/src/client/components/timeline.vue
index f5edb18550..15d0dab99d 100644
--- a/src/client/components/timeline.vue
+++ b/src/client/components/timeline.vue
@@ -27,6 +27,7 @@ export default Vue.extend({
 	data() {
 		return {
 			connection: null,
+			connection2: null,
 			pagination: null,
 			baseQuery: {
 				includeMyRenotes: this.$store.state.settings.showMyRenotes,
@@ -40,6 +41,7 @@ export default Vue.extend({
 	created() {
 		this.$once('hook:beforeDestroy', () => {
 			this.connection.dispose();
+			if (this.connection2) this.connection2.dispose();
 		});
 
 		const prepend = note => {
@@ -54,6 +56,12 @@ export default Vue.extend({
 			(this.$refs.tl as any).reload();
 		};
 
+		const onChangeFollowing = () => {
+			if (!this.$refs.tl.backed) {
+				this.$refs.tl.reload();
+			}
+		};
+
 		let endpoint;
 
 		if (this.src == 'antenna') {
@@ -67,13 +75,12 @@ export default Vue.extend({
 			this.connection.on('note', prepend);
 		} else if (this.src == 'home') {
 			endpoint = 'notes/timeline';
-			const onChangeFollowing = () => {
-				this.fetch();
-			};
 			this.connection = this.$root.stream.useSharedConnection('homeTimeline');
 			this.connection.on('note', prepend);
-			this.connection.on('follow', onChangeFollowing);
-			this.connection.on('unfollow', onChangeFollowing);
+
+			this.connection2 = this.$root.stream.useSharedConnection('main');
+			this.connection2.on('follow', onChangeFollowing);
+			this.connection2.on('unfollow', onChangeFollowing);
 		} else if (this.src == 'local') {
 			endpoint = 'notes/local-timeline';
 			this.connection = this.$root.stream.useSharedConnection('localTimeline');
diff --git a/src/client/scripts/paging.ts b/src/client/scripts/paging.ts
index b24d705f15..172558805b 100644
--- a/src/client/scripts/paging.ts
+++ b/src/client/scripts/paging.ts
@@ -8,7 +8,8 @@ export default (opts) => ({
 			fetching: true,
 			moreFetching: false,
 			inited: false,
-			more: false
+			more: false,
+			backed: false,
 		};
 	},
 
@@ -78,6 +79,7 @@ export default (opts) => ({
 		async fetchMore() {
 			if (!this.more || this.moreFetching || this.items.length === 0) return;
 			this.moreFetching = true;
+			this.backed = true;
 			let params = typeof this.pagination.params === 'function' ? this.pagination.params(false) : this.pagination.params;
 			if (params && params.then) params = await params;
 			const endpoint = typeof this.pagination.endpoint === 'function' ? this.pagination.endpoint() : this.pagination.endpoint;