cakephp - session variable keeps acting strangely

For reasons that elude me, a session variable that contains the customer's name will show up for a short while, and then disappear.

In the app_controller.php : beforeFilter()

if (isset($_SESSION['customer_name']) == false  || 
    strlen($_SESSION['customer_name']) == 0)
{
  $customer = $this->Customer->read(null, $auth['User']['customer_id']);
  $name = $customer['Customer']['fname'] . " " . $customer['Customer']['lname'];
  $this->Session->write('customer_name', $name);
  $this->set('name', $this->Session->read('customer_name'));
}
else
{
  $this->set('name', $this->Session->read('customer_name'));
}

I have tried variations on checking to see if the session is set such as

if ($this->Session->check('customer_name') == false)

Everything behaves in the same bizarre way, it will display in the view for a little while, and then disappear. Doesn't come back on closing browser or logging in again. Random small changes to that code seem to bring it back to life for a short time.