game.turn = n
 cmd_TURN.argtypes = 'int:nonneg'
 
-def cmd_ANNOTATE(game, pw, yx, msg, connection_id):
+def cmd_ANNOTATE(game, yx, msg, pw=None, connection_id=None):
     if connection_id and not game.can_do_tile_with_pw(yx, pw):
         raise GameError('wrong password for tile')
     if msg == ' ':
     else:
         game.annotations[yx] = msg
     game.changed = True
-cmd_ANNOTATE.argtypes = 'string yx_tuple:nonneg string'
+cmd_ANNOTATE.argtypes = 'yx_tuple:nonneg string string'
 
-def cmd_PORTAL(game, pw, yx, msg, connection_id):
+def cmd_PORTAL(game, yx, msg, pw=None, connection_id=None):
     if connection_id and not game.can_do_tile_with_pw(yx, pw):
         raise GameError('wrong password for tile')
     if msg == ' ':
     else:
         game.portals[yx] = msg
     game.changed = True
-cmd_PORTAL.argtypes = 'string yx_tuple:nonneg string'
+cmd_PORTAL.argtypes = 'yx_tuple:nonneg string string'
 
 def cmd_GET_ANNOTATION(game, yx, connection_id):
     annotation = '(none)';
 
             elif self.mode == self.mode_annotate and key == '\n':
                 if self.input_ == '':
                     self.input_ = ' '
-                self.send('ANNOTATE %s %s %s' % (quote(self.password),
-                                                 self.explorer, quote(self.input_)))
+                self.send('ANNOTATE %s %s %s' % (self.explorer, quote(self.input_),
+                                                 quote(self.password))
                 self.input_ = ""
                 self.switch_mode('study', keep_position=True)
             elif self.mode == self.mode_portal and key == '\n':
                 if self.input_ == '':
                     self.input_ = ' '
-                self.send('PORTAL %s %s %s' % (quote(self.password),
-                                               self.explorer, quote(self.input_)))
+                self.send('PORTAL %s %s %s' % (self.explorer, quote(self.input_),
+                                               quote(self.password)))
                 self.input_ = ""
                 self.switch_mode('study', keep_position=True)
             elif self.mode == self.mode_teleport and key == '\n':
 
         if (msg.length == 0) {
             msg = " ";  // triggers annotation deletion
         }
-        server.send(["ANNOTATE", tui.password, unparser.to_yx(explorer.position), msg]);
+        server.send(["ANNOTATE", unparser.to_yx(explorer.position), msg, tui.password]);
     },
     set_portal: function(msg) {
         if (msg.length == 0) {
             msg = " ";  // triggers portal deletion
         }
-        server.send(["PORTAL", tui.password, unparser.to_yx(explorer.position), msg]);
+        server.send(["PORTAL", unparser.to_yx(explorer.position), msg, tui.password]);
     }
 }