si, la verdad que por el planteamiento y tu código es extraño dicho comportamiento...
no queda de otra que depures linea por linea antes de llegar a dicha parte:
Código PHP:
echo "consulta: $sql<br />";
mysql_query($sql,$conexion) or die(mysql_error());
echo 'despues de la consulta!!!';
pero si se sigue comportando igual prueba habilitando el reporte de errores, agrega esto al inicio de tu script:
Código PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL);