Same problem using trinitycore.
This patch fixes it for trinity; should also work for mangos, i guess.
(Fix ported to mangos, not tested)
diff --git a/src/game/InstanceSaveMgr.cpp b/src/game/InstanceSaveMgr.cpp
index c194624..15344ae 100644
--- a/src/game/InstanceSaveMgr.cpp
+++ b/src/game/InstanceSaveMgr.cpp
@@ -612,6 +612,11 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, bool warn, uint32 timeLe
uint64 next_reset = ((now + timeLeft + MINUTE) / DAY * DAY) + period + diff;
// update it in the DB
CharacterDatabase.PExecute("UPDATE instance_reset SET resettime = '"UI64FMTD"' WHERE mapid = '%d'", next_reset, mapid);
+
+ // schedule next reset.
+ m_resetTimeByMapId[mapid] = (time_t) next_reset;
+ ScheduleReset(true, (time_t) (next_reset - 3600), InstResetEvent(1, mapid));
+
}
MapInstanced::InstancedMaps &instMaps = ((MapInstanced*)map)->GetInstancedMaps();