+ # since the message action is in a separate thread, the message may be
+ # delegated to unreplied() before the thread has a chance to actually
+ # mark it as replied. since threading is used mostly for commands that
+ # are known to take some processing time (e.g. download a web page) before
+ # giving an output, we just mark these as 'replied' here
+ m.replied = true