What is actually being received by Serial?
if (Serial.available() > 0) {
colour = Serial.read();
Temporarily add in a Serial.print() statement so you can see what is happening.
Also, post the latest version of your program so we can keep up with exactly what you are doing.
...R