Weird PHP Session variable problem

I have a script that first sets $_SESSION[order_status] = ‘complete’, then changes the header location to a new php page, with ?order_status=$_SESSION[order_status] attached to the URL. This new page checks to see if $_SESSION[order_status] == ‘complete’, and if not, gives a die() error. For some reason, this new page is not recognizing the $_SESSION variable, it’s so weird… I can look in the URL and see ?order_status=complete, so I know the variable has been set correctly, but for some reason it just isn’t being picked up on this new page. Here’s the code in the new page:

“first” page:

if (mail($to, $subject, $message, $headers)) {
        $_SESSION['order_status'] = 'complete';
        header ("Location:  http://www.am-eagle.com/checkout-confirm.php?order_status=$_SESSION[order_status]");
    }

beginning of “new” page:

session_start();
if ( $_SESSION['order_status'] != 'complete' ) {
             die('Sorry, either you have reached this page in error, or we are experiencing technical difficulties. Please <a href="mailto:">email us</a> if the problem persists. Thank you!');
    }

Any ideas? This has been driving me nuts all morning.