En realidad yo tampoco lo sé... pero supongo que será que un update no devuelve un recordset...
Me refiero a la línea:
$resultado = mysql_query("UPDATE usuarios...
Y supongo que hacer:
mysql_free_result($resultado);
Dará error por lo que tiene ( o más bien por lo que no tiene) almacenado la variable $resultado
Saludos