Problem with updating ListModel

Hi all,

I have a problem with my program. Its an Address book that adds, edits, deletes and sorts persons by last name and by zip code. My problem is with the "add method". When I click the add button on the GUI, a dialog comes up for user input and then when 'ok' is clicked the person's details is displayed on the GUI. But when I click to add another person, it overwrites the previous person with the new person's details, recording it in duplicate. I have no clue what is causing this.
In a normal, System.out....situation you create new objects like so.

import java.awt.Frame;
import java.awt.event.WindowEvent;
public class AddressBookApplication {
public static void main(String [] args)
{
FileSystem fileSystem = new FileSystem();
AddressBookController controller = new AddressBookController
(fileSystem);
AddressBookGUI gui = new AddressBookGUI(controller,
new AddressBook());
gui.setVisible(true);
Frame openedWindow = new Frame();
openedWindow.addWindowListener
( new java.awt.event.WindowAdapter()
{
public void windowClosing( WindowEvent winEvt )
{
winEvt.equals(false);
quitApplication();
}
} );
}
/** Terminate the application (unless cancelled by the user)
*/
public static void quitApplication()
{
// When the user requests to quit the application, any open
// windows must be closed
Frame [] openWindows = Frame.getFrames();
for (int i = 0; i < openWindows.length; i ++)
{
// Attempt to close any window that belongs to this program
if (openWindows[i] instanceof AddressBookGUI)
{
openWindows[i].dispatchEvent(new WindowEvent(
openWindows[i],
WindowEvent.WINDOW_CLOSING));
// If the window is still showing, this means that this attempt
// to close the window was cancelled by the user - so abort the
// quit operation
if (openWindows[i].isShowing())
return;
}
}
// If we get here, all open windows have been successfully closed
// (i.e. the user has not cancelled an offer to save any of them).
// Thus, the application can terminate.
System.exit(0);
}
}

************************************************** ******************
--How many persons are in the addressbook?--

No of persons in the Address Book is: 3
************************************************** ******************
--Print just the full names of persons in the addressbook--
Full name: Sally Fields
Full name: Sally Fields
************************************************** ******************

1. If you notice where it is supposed to print out just full names...it duplicates the last person
2. After updating the second person's details (David Hill)...when its to print all names in the address book...you find its updated the last name instead (Sally Fields).