diff --git a/Session/Signal/OWSConversationSettingsViewController.m b/Session/Signal/OWSConversationSettingsViewController.m
index ac678182e..3a34330f7 100644
--- a/Session/Signal/OWSConversationSettingsViewController.m
+++ b/Session/Signal/OWSConversationSettingsViewController.m
@@ -875,7 +875,8 @@ static CGRect oldframe;
             [infoMessage saveWithTransaction:transaction];
 
             SNExpirationTimerUpdate *expirationTimerUpdate = [SNExpirationTimerUpdate new];
-            expirationTimerUpdate.duration = self.disappearingMessagesConfiguration.durationSeconds;
+            BOOL isEnabled = self.disappearingMessagesConfiguration.enabled;
+            expirationTimerUpdate.duration = isEnabled ? self.disappearingMessagesConfiguration.durationSeconds : 0;
             [SNMessageSender send:expirationTimerUpdate inThread:self.thread usingTransaction:transaction];
         }];
     }
diff --git a/SessionMessagingKit/Database/Storage+Messaging.swift b/SessionMessagingKit/Database/Storage+Messaging.swift
index 0d6df572d..96a265d7d 100644
--- a/SessionMessagingKit/Database/Storage+Messaging.swift
+++ b/SessionMessagingKit/Database/Storage+Messaging.swift
@@ -46,6 +46,8 @@ extension Storage {
     /// Also touches the associated message.
     public func setAttachmentState(to state: TSAttachmentPointerState, for pointer: TSAttachmentPointer, associatedWith tsIncomingMessageID: String, using transaction: Any) {
         let transaction = transaction as! YapDatabaseReadWriteTransaction
+        // Workaround for some YapDatabase funkiness where pointer at this point can actually be a TSAttachmentStream
+        guard pointer.responds(to: #selector(setter: TSAttachmentPointer.state)) else { return }
         pointer.state = state
         pointer.save(with: transaction)
         guard let tsIncomingMessage = TSIncomingMessage.fetch(uniqueId: tsIncomingMessageID, transaction: transaction) else { return }