diff --git a/app/models/user_archived_message.rb b/app/models/user_archived_message.rb
index 3a54b6ea6df..0617c76f0b5 100644
--- a/app/models/user_archived_message.rb
+++ b/app/models/user_archived_message.rb
@@ -3,6 +3,12 @@ class UserArchivedMessage < ActiveRecord::Base
   belongs_to :topic
 
   def self.move_to_inbox!(user_id, topic_id)
+    return if (TopicUser.where(
+      user_id: user_id,
+      topic_id: topic_id,
+      notification_level: TopicUser.notification_levels[:muted]
+    ).exists?)
+
     UserArchivedMessage.where(user_id: user_id, topic_id: topic_id).destroy_all
     MessageBus.publish("/topic/#{topic_id}", {type: "move_to_inbox"}, user_ids: [user_id])
   end
diff --git a/spec/models/user_archived_message_spec.rb b/spec/models/user_archived_message_spec.rb
new file mode 100644
index 00000000000..cb3567b5db2
--- /dev/null
+++ b/spec/models/user_archived_message_spec.rb
@@ -0,0 +1,21 @@
+require 'rails_helper'
+
+describe UserArchivedMessage do
+  it 'Does not move archived muted messages back to inbox' do
+    user = Fabricate(:admin)
+    user2 = Fabricate(:admin)
+
+    topic = create_post(user: user,
+                        skip_validations: true,
+                        target_usernames: [user2.username,user.username].join(","),
+                        archetype: Archetype.private_message).topic
+
+    UserArchivedMessage.archive!(user.id, topic.id)
+    expect(topic.message_archived?(user)).to eq(true)
+
+    TopicUser.change(user.id, topic.id, notification_level: TopicUser.notification_levels[:muted])
+    UserArchivedMessage.move_to_inbox!(user.id, topic.id)
+    expect(topic.message_archived?(user)).to eq(true)
+  end
+end
+