{ pos=getpos(myList,item2); tmp=setpos(myList,pos-1); tmp->after=tmp->after->after; item2->after=NULL; myList->last->after=item2; //dis-connecting item2 and putting it at the end of list myList->last=item2; //maintain list integrity if(item1!=tmp->after) { item1->after=tmp->after; //put item 1 where item 2 was, if not already tmp->after=item2; } }