Lo que digo... estás ordenando las fechas por día/mes/año, entonces bajo ese Formato, '01/09/09' es menor a '31/08/09'.
Tenés que cambiar el nombre "alias" del campo fecha, asi:
Código PHP:
Ver original$sql = "SELECT id, email, titulo, mensaje, DATE_FORMAT(fecha,'%d/%m/%Y %T') fecha, respuestas, DATE_FORMAT(ult_respuesta,'%d/%m/%Y %T') ultima_respuesta, login, visitas ";
$sql.= "FROM foro WHERE identificador=0 ORDER BY ult_respuesta DESC";
Así, vas a ordenar por el campo
ult_respuesta (como corresponde, el original de la base de datos) y el campo "formateado" queda en
ultima_respuesta.