The new window clearly pops up because you are creating a new Shell object each time OnSave is called. You need to get the parent Shell window.
Shell parentShell = Window.GetWindow(this) as Shell;
                  Peter Lillevold
                   2009-05-04 08:19:25