Metodo inserir na lista

Preciso novamente da ajuda de voces, na estrutura de lista q criei, tem o metodo insereNo, metodo para inserir de forma ordenada,
mas tem uma problema se vou inserir algo na segunda posição, ele substitui a primeira posicao.
Alguem pode me ajudar?
aki esta meu codigo

 void InsereNo(noDuplo novoNo){
	 noDuplo aux = primeiro;
	 
   if(primeiro==null){
	   primeiro = novoNo;
	   ultimo = novoNo;
   }
   else{
	  boolean achou = false;
	  while(aux != null && !achou ){
		  if(aux.nome.compareTo(novoNo.nome) > 0){
			  achou = true;
		  }
		  else{
			  aux= aux.proximo;
		  }
	  }
	  if(achou){
		  novoNo.anterior = aux.anterior;
		  novoNo.proximo = aux;
		  
		if(aux.anterior != null){
			aux.anterior.proximo = novoNo;
			aux.anterior = novoNo;
		}
		else{
			primeiro = novoNo;
		}
	  }
	  else{
		  ultimo.proximo = novoNo;
		  novoNo.anterior = ultimo;
		  ultimo = novoNo;
		  

	      }
     }
  }

Olá

Pelo o que entendi, se você vai inserir algo na segunda posição, o primeiro elemento passa a ser o segundo e o que era pra ser o segundo passa a ser o primeiro?

É isso?