diff --git a/indra/llmessage/message.h b/indra/llmessage/message.h
index a3f2829ece5de20d098c31fc5dc56c9342bebf1e..52dbf871dbc963be38a38b4bbf597946b4a3b7ef 100644
--- a/indra/llmessage/message.h
+++ b/indra/llmessage/message.h
@@ -256,14 +256,16 @@ class LLMessageReaderPointer
 class LockMessageReader
 {
 public:
-    // Because LockMessageReader contains LLCoros::LockType, it is already
-    // move-only. No need to delete the copy constructor or copy assignment.
     LockMessageReader(LLMessageReaderPointer& var, LLMessageReader* instance):
         mVar(var.mPtr),
         mLock(var.mMutex)
     {
         mVar = instance;
     }
+    // Some compilers reportedly fail to suppress generating implicit copy
+    // operations even though we have a move-only LockType data member.
+    LockMessageReader(const LockMessageReader&) = delete;
+    LockMessageReader& operator=(const LockMessageReader&) = delete;
     ~LockMessageReader()
     {
         mVar = nullptr;