Is there any reason why this inherits from CPtrList instead of Common::Array<MessageQueue>? It seems this odd inheritance results in a lot of ugly casts inside the GlobalMessageQueueList implementation which could be easily avoided.