Nokia LCD display shield question

Is there something I am missing when it comes to re-printing information to the screen?
When the server is disconnected I want the void screen(); to run again replacing the TRUE with a FALSE.
This doesn't work.

// Include description files for other libraries used (if any)
#include <Twitter.h>
#include <gLCD.h>
#include <Ethernet.h>
#include <SPI.h>
#include <EthernetUdp.h>
#include <PString.h>



// Define Constants
// Max string length may have to be adjusted depending on data to be extracted
#define MAX_STRING_LEN  80

const char RST = 8;
const char CS = 9;
const char Clk = 7;
const char Data = 6;
gLCD graphic(RST,CS,Clk,Data,HIGH_SPEED); //High speed

boolean cts;
boolean mknc;

// Setup vars
char tagStr[MAX_STRING_LEN] = ""; //to contain the XML tags for comparison
char dataStr[MAX_STRING_LEN] = ""; //to store information between hashtags
char tmpStr[MAX_STRING_LEN] = ""; //temporary string for something.. I dunno
char prevStr[MAX_STRING_LEN] = ""; //to compare tweets to their previous, stops repeat functions
char buffer[MAX_STRING_LEN] = ""; // for PString... maybe Concatenate if it still jams up.
char endTag[3] = {'<', '/', '\0'};  //to recognise the ends of chars, XML tags and strings
char makeCoffee[] = "make me coffee"; // trigger text for incoming tweets
boolean firstTweetRead = false;  //to stop make() on first tweet read
PString tweetString(buffer, sizeof(buffer)); //contains the tweet
long randNumber; //to make the tweets unique
int len;               //No idea
int totalCount = 1;  //to count connect attempts 
int ledPin = 3;      //to control the relay


// Flags to differentiate XML tags from document elements (ie. data)
boolean tagFlag = false;     
boolean dataFlag = false;

// Ethernet vars
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x13, 0x1D };  //Arduino MAC
byte ip[] = {78,147,235,111 };                        //My home IP
byte server[] = { 199,59,149,232 }; // Twitter IP
Twitter twitter("794475482-XuCh0IVm8nTRcTAxkV6Gpx6VkdElWsww1Ns11n8x");


// Start ethernet client
EthernetClient client;

void setup()
{ 
 graphic.begin(0,0,0,PHILLIPS_1); 
 graphic.setBackColour(GLCD_BLACK);
 graphic.Clear();
 graphic.setFont(0);
 
 cts = false;
 mknc = false;
 screen();

   
  pinMode (ledPin, OUTPUT);
  randomSeed(analogRead(5));
  
  Serial.begin(9600);
  //Ethernet Client
  // attempt a DHCP connection:
  Serial.println(F("setup"));
  if (!Ethernet.begin(mac)) {
    // if DHCP fails, start with a hard-coded address:
    Serial.println(F("failed, trying manually"));
    Ethernet.begin(mac, ip);
  }
  
   connectToServer();
}

void loop() {
    while (client.connected()) {
    while (client.available()) {
    cts = true;
    serialEvent();
    }
  }

  if (!client.connected()) {
    Serial.println();
    cts = false;     // This should trigger.....
    Serial.println(F("=========Disconnected=========="));
    screen();     //THIS to change TRUE to FALSE  but it doesn't.  :(
    Serial.println("");
    client.stop();
    client.flush();
    // Time until next update
    //Serial.println("Waiting");
    for (int t = 1; t <= 30; t++) {
      delay(1000); // 1/2 minute
    }
connectToServer();
}
screen();

}



void screen(){
  graphic.Clear();
  
  //call
  graphic.setForeColour(15,15,15); //Text is coloured white
  graphic.setCoordinate(1,1);
  graphic.print("Connected to server:"); 
  //resp
 
 
  if (cts = true){
  graphic.setCoordinate(1,10);
  graphic.setForeColour(0,15,0); //Text is coloured green
  graphic.print("TRUE"); 
  }
  
  if (cts = false){
  graphic.setCoordinate(1,10);
  graphic.setForeColour(15,0,0); //Text is coloured green
  graphic.print("False"); 
  }
  
  //call
  graphic.setForeColour(15,15,15); //Text is coloured white
  graphic.setCoordinate(1,20);
  graphic.print("Water Level:"); 
  //resp
  graphic.setCoordinate(1,30);
  graphic.setForeColour(15,0,0); //Text is coloured Red
  graphic.print("LOW"); 
  
  //call
  graphic.setForeColour(15,15,15); //Text is coloured white
  graphic.setCoordinate(1,40);
  graphic.print("Making Coffee:"); 
  //resp
  
  if (mknc = false){
  graphic.setCoordinate(1,50);
  graphic.setForeColour(15,0,15); //Text is coloured Purple
  graphic.print("FALSE"); 
  }
  
  else if (mknc = true){
  graphic.setCoordinate(1,50);
  graphic.setForeColour(GLCD_LEMON); //Text is coloured lemon
  graphic.print("True"); //This keeps displaying even though it is false
  }
}

I don't get why these Booleans aren't working with this shield.
I know another method would be to replace sections of the screen with black and then write on top of them but that's a bit messy isn't it?