private boolean updateGameLevel() {
		if (linesToLevel <= 0) {
			int delay;
			switch (difficulty) {
				case Normal:
					++level;
					linesToLevel += (int)(level * 1.25) + 5;
					
					// Level 1 fall rate is 1 second, ever level thereafter decrease by 50 ms
					delay = FALL_RATE - (75 * level);
					break;
				
				case Hard:
					++level;
					linesToLevel += level * 2 + 5;
					
					// Level 1 fall rate is 1 second, ever level thereafter is 50% faster
					delay = (int)(FALL_RATE * Math.pow(1.5, 1 - level));
					break;
				
				default:
					delay = FALL_RATE;
			}
			
			// Let's not allow the timer to get too low...
			if (delay <= 10) {
				gameOver(true);
				return false;
			}
			fallTimer.setDelay(delay);
		}
		updateLabels();
		
		return true;
	}