summaryrefslogtreecommitdiff
path: root/src/messages.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/messages.cpp')
-rw-r--r--src/messages.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/messages.cpp b/src/messages.cpp
index 6a60d9cd9..dc11b99b4 100644
--- a/src/messages.cpp
+++ b/src/messages.cpp
@@ -107,7 +107,10 @@ void Join::SJoin(MessageSource &source, const Anope::string &chan, time_t ts, co
/* Update the modes for the channel */
if (keep_their_modes && !modes.empty())
- c->SetModesInternal(source, modes);
+ /* If we are syncing, mlock is checked later in Channel::Sync. It is important to not check it here
+ * so that Channel::SetCorrectModes can correctly detect the presence of channel mode +r.
+ */
+ c->SetModesInternal(source, modes, ts, !c->HasExt("SYNCING"));
for (std::list<SJoinUser>::const_iterator it = users.begin(), it_end = users.end(); it != it_end; ++it)
{