MIDlet+Form

Alguem pode ajuda-me:
fiz um projeto com midlet com somente os metodos basicos e os forms com a implementações, porem,
quando o form chama outro form nao consigo retorna mesmo o camando com BACK.

public class InventarioMIDlet extends MIDlet {
private static InventarioMIDlet instance;
private Form formMenu;

public InventarioMIDlet() {
	instance = this;
	// cria o formulario 
	formMenu = new MenuInventario("Menu Principal");		
	
}

protected void destroyApp(boolean arg0) {
	// TODO Auto-generated method stub

}

protected void pauseApp() {

}

protected void startApp()  {
	showMainScreen();
}

public void showMainScreen() {
    showDisplayable(formMenu);	
	
}
public static void showDisplayable(Displayable d) {
	Display.getDisplay(instance).setCurrent(d);	
	
}

public static void exit() {
	instance.destroyApp(true);
	instance.notifyDestroyed();
}

}

public class MenuInventario extends Form implements CommandListener{
private Command cmdPalm;
private Command cmdParametro;
private Command cmdProduto;
private Command cmdMovimento;
private Command cmdSair;
private Form formPalm;
private Form formParametro;
private Form formProduto;
private Form formMovimento;

 public MenuInventario(String title) {
		super(title);
		cmdSair = new Command("Sair",Command.EXIT,0);
		cmdPalm = new Command("Palm", Command.SCREEN, 1);
		cmdParametro = new Command("Parametro", Command.SCREEN, 2);
		cmdProduto = new Command("Produto", Command.SCREEN, 3);
		cmdMovimento = new Command("Movimento", Command.SCREEN, 4);
		formPalm = new FormPalm("Cadastro de Palm");		
		
		this.addCommand(cmdPalm);
		this.addCommand(cmdParametro);
		this.addCommand(cmdProduto);
		this.addCommand(cmdMovimento);
		this.addCommand(cmdSair);
		this.setCommandListener(this);
		
 }	

	public void commandAction(Command c, Displayable d) {
		if (c == cmdSair){
			if (d == this) {
		        InventarioMIDlet .exit();
			} else {
				InventarioMIDlet .showDisplayable(this);
			}
	     } else if (c == cmdPalm){
	    	 InventarioMIDlet .showDisplayable(formPalm);
		 } else if (c == cmdParametro) {
			 InventarioMIDlet .showDisplayable(formParametro);
		 } else if (c == cmdProduto) {
			 InventarioMIDlet .showDisplayable(formProduto);
		 } else if (c == cmdMovimento) {
			 InventarioMIDlet .showDisplayable(formMovimento);
		 }
 		}// funcao

}

public class FormPalm extends Form implements CommandListener, ItemCommandListener, ItemStateListener {
private Alert alerta;
private Spacer tstSpace;
private TextField codpal, emp, fil;
private Command cmdincluir, cmdexcluir, cmdalterar, cmdlistar, cmdSair;

public void commandAction(Command c, Displayable d) {
	if (c == cmdSair) {
 		try{
    		rs.closeRecordStore();
 		}
 		catch (Exception exc){
			System.out.print("Erro fechando o RecordStore: "+exc.toString());
  		    }
		parent.showMainScreen();
	}else if (c == cmdincluir) {
 		if (gravacaoOK == false){
    		System.out.print("Registro vazio não será salvo" + "Tente novamente");
	    }else {
   		    adicionarRegistro();
	    }
	}else if (c == cmdexcluir) {
    	apagarRegistros();
    }else if (c == cmdlistar) {
	    ListPalm = new ListarPalm("Lista de Palm", ChoiceGroup.MULTIPLE);
	    parent.showDisplayable(ListPalm);
    }
}// funcao