if connection_id in game.sessions:
         t_id = game.sessions[connection_id]
         t = game.get_thing(t_id, False)
-        game.io.send('META ' + quote('you rename yourself to: ' + nick), connection_id)
+        old_nick = t.nickname
+        t.nickname = nick
+        game.io.send('CHAT ' + quote(old_nick + ' renamed themselves to ' + nick))
     else:
         t = game.thing_types['player'](game)
         t.position = YX(game.map.size.y // 2, game.map.size.x // 2)
         game.things += [t]  # TODO refactor into Thing.__init__?
         game.sessions[connection_id] = t.id_
-        game.io.send('LOGIN_OK ' + quote('you are now: ' + nick), connection_id)
-    t.nickname = nick
-    game.io.send('PLAYER_ID %s' % t.id_, connection_id)
+        game.io.send('LOGIN_OK')
+        t.nickname = nick
+        game.io.send('CHAT ' + quote(t.nickname + ' entered the map.'))
+        game.io.send('PLAYER_ID %s' % t.id_, connection_id)
+    game.changed = True
 cmd_LOGIN.argtypes = 'string'
 
 def cmd_GET_GAMESTATE(game, connection_id):
 
      tui.log_msg('# ' + tokens[1], 1);
   } else if (tokens[0] === 'PLAYER_ID') {
       game.player_id = parseInt(tokens[1]);
-  } else if (tokens[0] === 'META') {
-     tui.log_msg('@ ' + tokens[1]);
   } else if (tokens[0] === 'LOGIN_OK') {
       server.send(['GET_GAMESTATE']);
       tui.log_msg('@ ' + tokens[1]);