SwitchCase-case drives me nuts!

I am going nuts here trying to understand how this piece of code works.

buttonReleased is set to 0 every time a button is not pressed. When I hold any buttons it is set to 1. That is good.
The problem is that even though buttonReleased is 0, the condition below is never fulfilled.

Anyone out there who can give me the answer to this?

      if (buttonReleased = 0)
       {
         delay(5000);
         buttonWasPressed = 4;
       }

The rest of the code:

//Sample using LiquidCrystal library
#include <LiquidCrystal.h>

/*******************************************************

This program will test the LCD panel and the buttons
Mark Bramwell, July 2010

********************************************************/

// select the pins used on the LCD panel
LiquidCrystal lcd(13, 12, 8, 4, 7, 2);

// define some values used by the panel and buttons
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnUP     1
#define btnNONE   5

int buttonReleased = 0;
int buttonWasPressed = 0;

// read the buttons
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor 
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
 // we add approx 50 to those values and check to see if we are close
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 if (adc_key_in < 900)   return btnUP;     
 return btnNONE;  // when all others fail, return this...
}



void setup()
{
 lcd.begin(16, 2);              // start the library
 lcd.setCursor(0,0);
 lcd.print("Push the buttons"); // print a simple message
}

void loop()
{
 lcd.setCursor(9,1);            // move cursor to second line "1" and 9 spaces over
 lcd.print(millis()/1000);      // display seconds elapsed since power-up

 lcd.setCursor(14,1);            // move cursor to second line "1" and 14 spaces over
 lcd.print(buttonWasPressed);      // display seconds elapsed since power-up

 lcd.setCursor(0,1);            // move to the begining of the second line
 lcd_key = read_LCD_buttons();  // read the buttons


 switch (lcd_key)               // depending on which button was pushed, we perform an action
 {
   case btnUP:
     {
     lcd.print(buttonReleased);
     if (buttonReleased = 0)
       {
         delay(5000);
         buttonWasPressed = 4;
       }
     buttonReleased = 1;
     break;
     }

 
     case btnNONE:
     {
     lcd.print(buttonReleased);
     buttonReleased = 0;
     break;
     }
 }

}
if (buttonReleased = 0)

Should be

if (buttonReleased == 0)

Gha!

Thank you ever so much, Mike!