diff --git a/src/sbbs3/userlist/SBBS_User_ListMain.cpp b/src/sbbs3/userlist/SBBS_User_ListMain.cpp
index 1d038818c3d991253a37d23913b9a033b495782f..e0a1207f474935604fa33aabb29c92419b559e4a 100644
--- a/src/sbbs3/userlist/SBBS_User_ListMain.cpp
+++ b/src/sbbs3/userlist/SBBS_User_ListMain.cpp
@@ -10,7 +10,10 @@
 #include "SBBS_User_ListMain.h"
 #include <wx/msgdlg.h>
 
-//(*InternalHeaders(SBBS_User_ListFrame)#include <wx/intl.h>#include <wx/string.h>//*)
+//(*InternalHeaders(SBBS_User_ListFrame)
+#include <wx/intl.h>
+#include <wx/string.h>
+//*)
 
 //helper functions
 enum wxbuildinfoformat {
@@ -38,7 +41,20 @@ wxString wxbuildinfo(wxbuildinfoformat format)
     return wxbuild;
 }
 
-//(*IdInit(SBBS_User_ListFrame)const long SBBS_User_ListFrame::ID_STATICTEXT1 = wxNewId();const long SBBS_User_ListFrame::ID_ARSTEXTCTRL = wxNewId();const long SBBS_User_ListFrame::ID_CLEARBUTTON = wxNewId();const long SBBS_User_ListFrame::ID_USERLISTCTRL = wxNewId();const long SBBS_User_ListFrame::ID_STATICTEXT2 = wxNewId();const long SBBS_User_ListFrame::ID_QVCHOICE = wxNewId();const long SBBS_User_ListFrame::ID_REFRESHBUTTON = wxNewId();const long SBBS_User_ListFrame::ID_EDITBUTTON = wxNewId();const long SBBS_User_ListFrame::ID_PANEL1 = wxNewId();const long SBBS_User_ListFrame::idMenuQuit = wxNewId();const long SBBS_User_ListFrame::idMenuAbout = wxNewId();const long SBBS_User_ListFrame::ID_STATUSBAR1 = wxNewId();//*)
+//(*IdInit(SBBS_User_ListFrame)
+const long SBBS_User_ListFrame::ID_STATICTEXT1 = wxNewId();
+const long SBBS_User_ListFrame::ID_ARSTEXTCTRL = wxNewId();
+const long SBBS_User_ListFrame::ID_CLEARBUTTON = wxNewId();
+const long SBBS_User_ListFrame::ID_USERLISTCTRL = wxNewId();
+const long SBBS_User_ListFrame::ID_STATICTEXT2 = wxNewId();
+const long SBBS_User_ListFrame::ID_QVCHOICE = wxNewId();
+const long SBBS_User_ListFrame::ID_REFRESHBUTTON = wxNewId();
+const long SBBS_User_ListFrame::ID_EDITBUTTON = wxNewId();
+const long SBBS_User_ListFrame::ID_PANEL1 = wxNewId();
+const long SBBS_User_ListFrame::idMenuQuit = wxNewId();
+const long SBBS_User_ListFrame::idMenuAbout = wxNewId();
+const long SBBS_User_ListFrame::ID_STATUSBAR1 = wxNewId();
+//*)
 
 BEGIN_EVENT_TABLE(SBBS_User_ListFrame,wxFrame)
     //(*EventTable(SBBS_User_ListFrame)
@@ -99,7 +115,80 @@ void SBBS_User_ListFrame::fillUserList(void)
 
 SBBS_User_ListFrame::SBBS_User_ListFrame(wxWindow* parent,wxWindowID id)
 {
-    //(*Initialize(SBBS_User_ListFrame)    wxBoxSizer* BoxSizer4;    wxBoxSizer* BoxSizer5;    wxMenuItem* MenuItem2;    wxMenuItem* MenuItem1;    wxBoxSizer* BoxSizer2;    wxMenu* Menu1;    wxBoxSizer* BoxSizer1;    wxMenuBar* MenuBar1;    wxBoxSizer* BoxSizer3;    wxMenu* Menu2;    Create(parent, id, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("id"));    Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));    BoxSizer1 = new wxBoxSizer(wxVERTICAL);    BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);    StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("ARS Filter"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));    BoxSizer2->Add(StaticText1, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);    ARSFilter = new wxTextCtrl(Panel1, ID_ARSTEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_ARSTEXTCTRL"));    ARSFilter->SetToolTip(_("Enter an ARS string to filter users with"));    BoxSizer2->Add(ARSFilter, 1, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);    ClearButton = new wxButton(Panel1, ID_CLEARBUTTON, _("Clear"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CLEARBUTTON"));    ClearButton->SetToolTip(_("Clears the ARS filter"));    BoxSizer2->Add(ClearButton, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);    BoxSizer1->Add(BoxSizer2, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);    UserList = new wxListCtrl(Panel1, ID_USERLISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_HRULES, wxDefaultValidator, _T("ID_USERLISTCTRL"));    BoxSizer1->Add(UserList, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);    BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);    BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);    StaticText2 = new wxStaticText(Panel1, ID_STATICTEXT2, _("Quick Validation Sets"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));    BoxSizer4->Add(StaticText2, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);    QVChoice = new wxChoice(Panel1, ID_QVCHOICE, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_QVCHOICE"));    QVChoice->SetSelection( QVChoice->Append(_("Select a set")) );    QVChoice->Disable();    BoxSizer4->Add(QVChoice, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);    BoxSizer3->Add(BoxSizer4, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);    BoxSizer5 = new wxBoxSizer(wxHORIZONTAL);    RefreshButton = new wxButton(Panel1, ID_REFRESHBUTTON, _("Refresh"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_REFRESHBUTTON"));    RefreshButton->SetToolTip(_("Reloads the user database"));    BoxSizer5->Add(RefreshButton, 0, wxALL|wxALIGN_RIGHT|wxALIGN_TOP, 5);    EditButton = new wxButton(Panel1, ID_EDITBUTTON, _("Edit"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_EDITBUTTON"));    EditButton->Disable();    BoxSizer5->Add(EditButton, 0, wxALL|wxALIGN_RIGHT|wxALIGN_TOP, 5);    BoxSizer3->Add(BoxSizer5, 0, wxALL|wxALIGN_RIGHT|wxALIGN_TOP, 5);    BoxSizer1->Add(BoxSizer3, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);    Panel1->SetSizer(BoxSizer1);    BoxSizer1->Fit(Panel1);    BoxSizer1->SetSizeHints(Panel1);    MenuBar1 = new wxMenuBar();    Menu1 = new wxMenu();    MenuItem1 = new wxMenuItem(Menu1, idMenuQuit, _("Quit\tAlt-F4"), _("Quit the application"), wxITEM_NORMAL);    Menu1->Append(MenuItem1);    MenuBar1->Append(Menu1, _("&File"));    Menu2 = new wxMenu();    MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _("About\tF1"), _("Show info about this application"), wxITEM_NORMAL);    Menu2->Append(MenuItem2);    MenuBar1->Append(Menu2, _("Help"));    SetMenuBar(MenuBar1);    StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T("ID_STATUSBAR1"));    int __wxStatusBarWidths_1[1] = { -1 };    int __wxStatusBarStyles_1[1] = { wxSB_NORMAL };    StatusBar1->SetFieldsCount(1,__wxStatusBarWidths_1);    StatusBar1->SetStatusStyles(1,__wxStatusBarStyles_1);    SetStatusBar(StatusBar1);    Connect(ID_ARSTEXTCTRL,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnARSFilterText);    Connect(ID_CLEARBUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnClearButtonClick);    Connect(ID_USERLISTCTRL,wxEVT_COMMAND_LIST_ITEM_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnUserListItemSelect);    Connect(ID_USERLISTCTRL,wxEVT_COMMAND_LIST_ITEM_DESELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnUserListItemSelect);    Connect(ID_QVCHOICE,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnQVChoiceSelect);    Connect(ID_REFRESHBUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnRefreshButtonClick);    Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnQuit);    Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnAbout);    //*)
+    //(*Initialize(SBBS_User_ListFrame)
+    wxBoxSizer* BoxSizer4;
+    wxBoxSizer* BoxSizer5;
+    wxMenuItem* MenuItem2;
+    wxMenuItem* MenuItem1;
+    wxBoxSizer* BoxSizer2;
+    wxMenu* Menu1;
+    wxBoxSizer* BoxSizer1;
+    wxMenuBar* MenuBar1;
+    wxBoxSizer* BoxSizer3;
+    wxMenu* Menu2;
+
+    Create(parent, id, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("id"));
+    Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
+    BoxSizer1 = new wxBoxSizer(wxVERTICAL);
+    BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
+    StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("ARS Filter"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
+    BoxSizer2->Add(StaticText1, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
+    ARSFilter = new wxTextCtrl(Panel1, ID_ARSTEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_ARSTEXTCTRL"));
+    ARSFilter->SetToolTip(_("Enter an ARS string to filter users with"));
+    BoxSizer2->Add(ARSFilter, 1, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    ClearButton = new wxButton(Panel1, ID_CLEARBUTTON, _("Clear"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_CLEARBUTTON"));
+    ClearButton->SetToolTip(_("Clears the ARS filter"));
+    BoxSizer2->Add(ClearButton, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    BoxSizer1->Add(BoxSizer2, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    UserList = new wxListCtrl(Panel1, ID_USERLISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_HRULES, wxDefaultValidator, _T("ID_USERLISTCTRL"));
+    BoxSizer1->Add(UserList, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
+    BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
+    StaticText2 = new wxStaticText(Panel1, ID_STATICTEXT2, _("Quick Validation Sets"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
+    BoxSizer4->Add(StaticText2, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    QVChoice = new wxChoice(Panel1, ID_QVCHOICE, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_QVCHOICE"));
+    QVChoice->SetSelection( QVChoice->Append(_("Select a set")) );
+    QVChoice->Disable();
+    BoxSizer4->Add(QVChoice, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    BoxSizer3->Add(BoxSizer4, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    BoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
+    RefreshButton = new wxButton(Panel1, ID_REFRESHBUTTON, _("Refresh"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_REFRESHBUTTON"));
+    RefreshButton->SetToolTip(_("Reloads the user database"));
+    BoxSizer5->Add(RefreshButton, 0, wxALL|wxALIGN_RIGHT|wxALIGN_TOP, 5);
+    EditButton = new wxButton(Panel1, ID_EDITBUTTON, _("Edit"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_EDITBUTTON"));
+    EditButton->Disable();
+    BoxSizer5->Add(EditButton, 0, wxALL|wxALIGN_RIGHT|wxALIGN_TOP, 5);
+    BoxSizer3->Add(BoxSizer5, 0, wxALL|wxALIGN_RIGHT|wxALIGN_TOP, 5);
+    BoxSizer1->Add(BoxSizer3, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
+    Panel1->SetSizer(BoxSizer1);
+    BoxSizer1->Fit(Panel1);
+    BoxSizer1->SetSizeHints(Panel1);
+    MenuBar1 = new wxMenuBar();
+    Menu1 = new wxMenu();
+    MenuItem1 = new wxMenuItem(Menu1, idMenuQuit, _("Quit\tAlt-F4"), _("Quit the application"), wxITEM_NORMAL);
+    Menu1->Append(MenuItem1);
+    MenuBar1->Append(Menu1, _("&File"));
+    Menu2 = new wxMenu();
+    MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _("About\tF1"), _("Show info about this application"), wxITEM_NORMAL);
+    Menu2->Append(MenuItem2);
+    MenuBar1->Append(Menu2, _("Help"));
+    SetMenuBar(MenuBar1);
+    StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T("ID_STATUSBAR1"));
+    int __wxStatusBarWidths_1[1] = { -1 };
+    int __wxStatusBarStyles_1[1] = { wxSB_NORMAL };
+    StatusBar1->SetFieldsCount(1,__wxStatusBarWidths_1);
+    StatusBar1->SetStatusStyles(1,__wxStatusBarStyles_1);
+    SetStatusBar(StatusBar1);
+
+    Connect(ID_ARSTEXTCTRL,wxEVT_COMMAND_TEXT_UPDATED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnARSFilterText);
+    Connect(ID_CLEARBUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnClearButtonClick);
+    Connect(ID_USERLISTCTRL,wxEVT_COMMAND_LIST_ITEM_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnUserListItemSelect);
+    Connect(ID_USERLISTCTRL,wxEVT_COMMAND_LIST_ITEM_DESELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnUserListItemSelect);
+    Connect(ID_QVCHOICE,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnQVChoiceSelect);
+    Connect(ID_REFRESHBUTTON,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnRefreshButtonClick);
+    Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnQuit);
+    Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&SBBS_User_ListFrame::OnAbout);
+    //*)
 
 	// Stupid Windows Dance
 	wxListItem itemCol;
diff --git a/src/sbbs3/userlist/SBBS_User_ListMain.h b/src/sbbs3/userlist/SBBS_User_ListMain.h
index 6f9a6874f7262efdc34ee0453182cdcb80f2f732..eb0aa25b705954d0e48b4c43e5dba75627cc4de1 100644
--- a/src/sbbs3/userlist/SBBS_User_ListMain.h
+++ b/src/sbbs3/userlist/SBBS_User_ListMain.h
@@ -10,7 +10,18 @@
 #ifndef SBBS_USER_LISTMAIN_H
 #define SBBS_USER_LISTMAIN_H
 
-//(*Headers(SBBS_User_ListFrame)#include <wx/listctrl.h>#include <wx/sizer.h>#include <wx/stattext.h>#include <wx/menu.h>#include <wx/textctrl.h>#include <wx/panel.h>#include <wx/choice.h>#include <wx/button.h>#include <wx/frame.h>#include <wx/statusbr.h>//*)
+//(*Headers(SBBS_User_ListFrame)
+#include <wx/listctrl.h>
+#include <wx/sizer.h>
+#include <wx/stattext.h>
+#include <wx/menu.h>
+#include <wx/textctrl.h>
+#include <wx/panel.h>
+#include <wx/choice.h>
+#include <wx/button.h>
+#include <wx/frame.h>
+#include <wx/statusbr.h>
+//*)
 
 #include "SBBS_User_ListApp.h"
 
@@ -35,9 +46,33 @@ class SBBS_User_ListFrame: public wxFrame
         void OnQVChoiceSelect(wxCommandEvent& event);
         //*)
 
-        //(*Identifiers(SBBS_User_ListFrame)        static const long ID_STATICTEXT1;        static const long ID_ARSTEXTCTRL;        static const long ID_CLEARBUTTON;        static const long ID_USERLISTCTRL;        static const long ID_STATICTEXT2;        static const long ID_QVCHOICE;        static const long ID_REFRESHBUTTON;        static const long ID_EDITBUTTON;        static const long ID_PANEL1;        static const long idMenuQuit;        static const long idMenuAbout;        static const long ID_STATUSBAR1;        //*)
+        //(*Identifiers(SBBS_User_ListFrame)
+        static const long ID_STATICTEXT1;
+        static const long ID_ARSTEXTCTRL;
+        static const long ID_CLEARBUTTON;
+        static const long ID_USERLISTCTRL;
+        static const long ID_STATICTEXT2;
+        static const long ID_QVCHOICE;
+        static const long ID_REFRESHBUTTON;
+        static const long ID_EDITBUTTON;
+        static const long ID_PANEL1;
+        static const long idMenuQuit;
+        static const long idMenuAbout;
+        static const long ID_STATUSBAR1;
+        //*)
 
-        //(*Declarations(SBBS_User_ListFrame)        wxButton* RefreshButton;        wxStaticText* StaticText2;        wxPanel* Panel1;        wxStaticText* StaticText1;        wxListCtrl* UserList;        wxStatusBar* StatusBar1;        wxButton* ClearButton;        wxChoice* QVChoice;        wxButton* EditButton;        wxTextCtrl* ARSFilter;        //*)
+        //(*Declarations(SBBS_User_ListFrame)
+        wxButton* RefreshButton;
+        wxStaticText* StaticText2;
+        wxPanel* Panel1;
+        wxStaticText* StaticText1;
+        wxListCtrl* UserList;
+        wxStatusBar* StatusBar1;
+        wxButton* ClearButton;
+        wxChoice* QVChoice;
+        wxButton* EditButton;
+        wxTextCtrl* ARSFilter;
+        //*)
 
         unsigned char *ars;
         DECLARE_EVENT_TABLE()