Programa não para

Estou fazendo um exercício e não consigo fazer a minha condição de saída da iteração ser verdadeira. Aí mesmo escrevendo FIM o programa continua rodando, gostaria de saber como resolver esse problema e aonde foi meu erro.

public class Palindromo{

public static void main(String[] args){

   String palavra;

   do{
		palavra = MyIO.readString();
		verificarP(palavra);
    }while(palavra != "FIM");// Essa condição ñ está funcionando!
	
	
}//fim main

//esse método verifica se a palavra é palindromo
public static boolean verificarP(String palavra){
	int e = 0,
		d = palavra.length()-1;
	boolean palindromo = true;	
	
	while(e<=d){
		
		if(palavra.charAt(e) != palavra.charAt(d)){
			palindromo=false;
		}	
		e++;
		d--;
		
	}
	
	if(palindromo){
		MyIO.println("SIM");
		return palindromo;
	 }else{
		MyIO.println("NAO");
		return palindromo;
	 }
	
}//fim método verificarP

}//fim class

Strings são objetos, compará-las com == não dá certo (exceto literais que estão no pool de strings da jvm).

Troque

while(palavra != "FIM");

para

while(!palavra.equals("FIM"));