Single instance usando socket [erro]

Dae pessoal,
estou tendo um problema muito estranho ao tentar manter apenas uma instância da minha aplicação. Ao iniciar a aplicação, tenho o seguinte código:

try{ @SuppressWarnings("unused") ServerSocket socket = new ServerSocket(12345); }catch(BindException bindEx){ //Se a porta estiver alocada, a aplicação já está aberta. mensagem("A aplicação já está aberta!", true); }catch(IOException ioEx){ mensagem("Não foi possível abrir a aplicação! " + ioEx.getMessage(), true); }

Ele deveria garantir uma instância da aplicação, MAS, ao mostrar no TrayIcon (os ícones do lado do relógio) da aplicação um balaozin de mensagem (dos tipo WARNING e ERROR), parece que a porta é liberada, permitindo que outra instância seja aberta.
Isso seria um bug???

ALGUéM se habilita?