diff --git a/Ring/Ring/Database/DBManager.swift b/Ring/Ring/Database/DBManager.swift
index ed4c36fcbab177d5ebab1897f4fff34f812b0ba9..5355819dd45d6e057737132b580ae0161151a119 100644
--- a/Ring/Ring/Database/DBManager.swift
+++ b/Ring/Ring/Database/DBManager.swift
@@ -118,6 +118,7 @@ enum InteractionStatus: String {
         case .transferOngoing: return DataTransferStatus.ongoing
         case .transferSuccess: return DataTransferStatus.success
         case .transferError: return DataTransferStatus.error
+        case .displayed: return DataTransferStatus.success
         default: return DataTransferStatus.unknown
         }
     }
diff --git a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
index 5ed4bd4d6637b254287847682bc4a46a6e953c6b..cd50c74ef61764af2f727f5588f210e93d485809 100644
--- a/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/ConversationViewController.swift
@@ -972,7 +972,7 @@ extension ConversationViewController: UITableViewDataSource {
                     item.bubblePosition() == .generated ? MessageCellGenerated.self :
                     MessageCellGenerated.self
             }
-            if item.message.incoming && item.message.status != .displayed {
+            if item.message.incoming && item.message.status != .displayed && !item.message.isTransfer {
                 self.viewModel
                     .setMessageAsRead(daemonId: item.message.daemonId,
                                       messageId: item.message.messageId)
@@ -1028,7 +1028,9 @@ extension ConversationViewController: UITableViewDataSource {
                                 guard let sectionNumber = tableView?.numberOfSections,
                                 let rowNumber =  tableView?.numberOfRows(inSection: indexPath.section) else {return}
                                 if indexPath.section < sectionNumber && indexPath.section >= 0 {
-                                    if indexPath.row < rowNumber && indexPath.row >= 0 {
+                                    if indexPath.row < rowNumber &&
+                                        indexPath.row >= 0 &&
+                                        indexPath.row != tableView?.numberOfRows(inSection: indexPath.section) {
                                         tableView?
                                             .reloadItemsAtIndexPaths([indexPath],
                                                                      animationStyle: .top)
diff --git a/Ring/Ring/Features/Conversations/Conversation/ConversationViewModel.swift b/Ring/Ring/Features/Conversations/Conversation/ConversationViewModel.swift
index 0e36683059c9738968e1eb4ffec33846d6c7526e..1e0959673ea69ec335bb603600eec0b6ef8ae79b 100644
--- a/Ring/Ring/Features/Conversations/Conversation/ConversationViewModel.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/ConversationViewModel.swift
@@ -366,7 +366,7 @@ class ConversationViewModel: Stateable, ViewModel {
             }).disposed(by: disposeBag)
     }
 
-    func setMessageAsRead (daemonId: String, messageId: Int64) {
+    func setMessageAsRead(daemonId: String, messageId: Int64) {
         guard let account = self.accountService.currentAccount else {
             return
         }