intentaste imprimir el dato de la variable guardada en sesion para verificar que antes fue guardada correctamente, aveces no es que no recoja el valor si no que recoje un valor que ni siquiera se guardo anteriormente, opta por imprimir el ultimo valor también, en tal caso te recomiendo lo siguiente pasa los valores por post de la siguiente forma:
ejemplo
Código PHP:
Ver originalif(isset($_POST['username']) && !empty($_POST['username']) && isset($_POST['password']) && !empty($_POST['password']) && isset($_POST['password2']) && !empty($_POST['password2']) && isset($_POST['nombre']) && !empty($_POST['nombre']) && isset($_POST['apellido']) && !empty($_POST['apellido']) && isset($_POST['telefono']) && !empty($_POST['telefono']) && isset($_POST['email']) && !empty($_POST['email'])) { $username=$_POST['username'];
$password=$_POST['password'];
$password2=$_POST['password2'];
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$telefono=$_POST['telefono'];