diff --git a/src/sbbs3/gtkuserlist/events.c b/src/sbbs3/gtkuserlist/events.c
index b72af08dd535f61e2c208b3e4dce1d75564ffd74..45f355c779599a07d85b3a3271a4ba3f52e568a4 100644
--- a/src/sbbs3/gtkuserlist/events.c
+++ b/src/sbbs3/gtkuserlist/events.c
@@ -86,6 +86,12 @@ void update_userlist_item(GtkListStore *lstore, GtkTreeIter *curr, int usernum)
 
 	user.number=usernum;
 	getuserdat(&cfg, &user);
+	if(arbuf) {
+		if(!chk_ar(&cfg, arbuf, &user)) {
+			gtk_list_store_remove(lstore, curr);
+			return;
+		}
+	}
 	sex[0]=user.sex;
 	sex[1]=0;
 	unixtodstr(&cfg, user.firston, first);
@@ -118,6 +124,13 @@ void update_userlist_callback(GtkWidget *wiggy, gpointer data)
 	int				totalusers;
 	int				i;
 	GtkTreeIter		curr;
+	char			str[1024];
+
+	free_cfg(&cfg);
+	if(!load_cfg(&cfg, NULL, TRUE, str)) {
+		display_message("Load Error","Cannot load configuration data","gtk-dialog-error");
+		return;
+    }
 
 	w=glade_xml_get_widget(lxml, "lUserList");
 	lstore=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(w)));
@@ -209,3 +222,21 @@ void userlist_edituser(GtkWidget *wiggy, gpointer data)
 	run_external(cfg.exec_dir,str);
 }
 
+void apply_ars_filter(GtkWidget *wiggy, gpointer data)
+{
+	GtkWidget	*w;
+
+	w=glade_xml_get_widget(lxml, "eArsFilter");
+	arbuf=arstr(NULL, (char *)gtk_entry_get_text(GTK_ENTRY(w)), &cfg);
+	update_userlist_callback(wiggy, data);
+}
+
+void clear_ars_filter(GtkWidget *wiggy, gpointer data)
+{
+	GtkWidget	*w;
+
+	w=glade_xml_get_widget(lxml, "eArsFilter");
+	gtk_entry_set_text(GTK_ENTRY(w),"");
+	arbuf=NULL;
+	update_userlist_callback(wiggy, data);
+}
diff --git a/src/sbbs3/gtkuserlist/gtkuserlist.c b/src/sbbs3/gtkuserlist/gtkuserlist.c
index 2eb84d4ab80b278442f2b30ae371e16cb97e98c7..7d36defb3309e0da057db4bb77c9c044a27a1800 100644
--- a/src/sbbs3/gtkuserlist/gtkuserlist.c
+++ b/src/sbbs3/gtkuserlist/gtkuserlist.c
@@ -4,8 +4,9 @@
 #include "events.h"
 #include "gtkuserlist.h"
 
-GladeXML		*lxml;
+GladeXML	*lxml;
 scfg_t		cfg;
+uchar		*arbuf=NULL;
 
 int main(int argc, char **argv)
 {
diff --git a/src/sbbs3/gtkuserlist/gtkuserlist.glade b/src/sbbs3/gtkuserlist/gtkuserlist.glade
index 18e42b59349566260d6cfc495871d8cd61e8e9c9..604e721062521ca1722e78b96f87b03079f45bef 100644
--- a/src/sbbs3/gtkuserlist/gtkuserlist.glade
+++ b/src/sbbs3/gtkuserlist/gtkuserlist.glade
@@ -19,6 +19,7 @@
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="focus_on_map">True</property>
   <property name="urgency_hint">False</property>
+  <signal name="destroy" handler="gtk_main_quit" last_modification_time="Sun, 14 May 2006 06:40:44 GMT"/>
 
   <child>
     <widget class="GtkVBox" id="vbox4">
@@ -26,6 +27,221 @@
       <property name="homogeneous">False</property>
       <property name="spacing">0</property>
 
+      <child>
+	<widget class="GtkHBox" id="hbox21">
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="label24">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">ARS Filter</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">10</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkEntry" id="eArsFilter">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="editable">True</property>
+	      <property name="visibility">True</property>
+	      <property name="max_length">0</property>
+	      <property name="text" translatable="yes"></property>
+	      <property name="has_frame">True</property>
+	      <property name="invisible_char">*</property>
+	      <property name="activates_default">False</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="bApplyFilter">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="apply_ars_filter" last_modification_time="Sun, 14 May 2006 06:47:52 GMT"/>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment8">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">0</property>
+		  <property name="yscale">0</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">0</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox22">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">2</property>
+
+		      <child>
+			<widget class="GtkImage" id="image1362">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-apply</property>
+			  <property name="icon_size">4</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label25">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Apply</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="button9">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="clear_ars_filter" last_modification_time="Sun, 14 May 2006 06:48:02 GMT"/>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment9">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">0</property>
+		  <property name="yscale">0</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">0</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox23">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">2</property>
+
+		      <child>
+			<widget class="GtkImage" id="image1363">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-clear</property>
+			  <property name="icon_size">4</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label26">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Clear</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
+	</packing>
+      </child>
+
       <child>
 	<widget class="GtkScrolledWindow" id="scrolledwindow3">
 	  <property name="visible">True</property>
diff --git a/src/sbbs3/gtkuserlist/gtkuserlist.h b/src/sbbs3/gtkuserlist/gtkuserlist.h
index 425fddb0a47068f2948d43002c61c8238de065fb..7b5133c6ccad1c909063ec875409a0c5cffedaf4 100644
--- a/src/sbbs3/gtkuserlist/gtkuserlist.h
+++ b/src/sbbs3/gtkuserlist/gtkuserlist.h
@@ -8,5 +8,6 @@
 
 extern GladeXML		*lxml;
 extern scfg_t		cfg;
+extern uchar		*arbuf;
 
 #endif