diff --git a/src/sbbs3/gtkuseredit/events.c b/src/sbbs3/gtkuseredit/events.c
index e2944c996e50f8c9adc48e8ea087a86c9dccc00a..a79fda90b486f0c7ee68b39ed6341afdac666caf 100644
--- a/src/sbbs3/gtkuseredit/events.c
+++ b/src/sbbs3/gtkuseredit/events.c
@@ -4,6 +4,8 @@
 #include "sbbs.h"
 #include "dirwrap.h"
 #include "xpbeep.h"
+#include "datewrap.h"
+#include "semwrap.h"
 
 #include "gtkuseredit.h"
 
@@ -237,7 +239,10 @@ void load_user(GtkWidget *wiggy, gpointer data)
 		if(w==NULL)
 			fprintf(stderr,"Cannot get the expiration widget\n");
 		else {
-			unixtodstr(&cfg, user.expire, str);
+			if(user.expire)
+				unixtodstr(&cfg, user.expire, str);
+			else
+				strcpy(str,"Never");
 			gtk_entry_set_text(GTK_ENTRY(w),str);
 		}
 
@@ -343,7 +348,10 @@ void load_user(GtkWidget *wiggy, gpointer data)
 		if(w==NULL)
 			fprintf(stderr,"Cannot get the first on widget\n");
 		else {
-			unixtodstr(&cfg, user.firston, str);
+			if(user.firston)
+				unixtodstr(&cfg, user.firston, str);
+			else
+				strcpy(str,"Never");
 			gtk_entry_set_text(GTK_ENTRY(w),str);
 		}
 
@@ -352,7 +360,10 @@ void load_user(GtkWidget *wiggy, gpointer data)
 		if(w==NULL)
 			fprintf(stderr,"Cannot get the last on widget\n");
 		else {
-			unixtodstr(&cfg, user.laston, str);
+			if(user.laston)
+				unixtodstr(&cfg, user.laston, str);
+			else
+				strcpy(str,"Never");
 			gtk_entry_set_text(GTK_ENTRY(w),str);
 		}
 
@@ -857,13 +868,15 @@ void last_user(GtkWidget *w, gpointer data)
 
 void show_about_box(GtkWidget *unused, gpointer data)
 {
-	GtkWidget	*w;
-	w=glade_xml_get_widget(xml, "AboutWindow");
-	if(w==NULL) {
-		fprintf(stderr,"Cannot get about window widget\n");
+	GladeXML	*axml;
+    axml = glade_xml_new("gtkuseredit.glade", "AboutWindow", NULL);
+	if(axml==NULL) {
+		fprintf(stderr,"Could not locate AboutWindow widget\n");
 		return;
 	}
-	gtk_widget_show(GTK_WIDGET(w));
+    /* connect the signals in the interface */
+    glade_xml_signal_autoconnect(axml);
+	gtk_window_present(GTK_WINDOW(glade_xml_get_widget(axml, "AboutWindow")));
 }
 
 void user_toggle_delete(GtkWidget *t, gpointer data)
@@ -915,26 +928,229 @@ void find_user(GtkWidget *t, gpointer data)
 	if(w==NULL)
 		fprintf(stderr,"Cannot get the find user entry widget\n");
 	else {
-		nu=matchuser(&cfg, gtk_entry_get_text(GTK_ENTRY(w)), TRUE);
+		nu=matchuser(&cfg, (char *)gtk_entry_get_text(GTK_ENTRY(w)), TRUE);
 		if(nu==0) {
-			w=glade_xml_get_widget(xml, "NotFoundWindow");
-			if(w==NULL)
+			GladeXML	*cxml;
+			cxml = glade_xml_new("gtkuseredit.glade", "NotFoundWindow", NULL);
+		    /* connect the signals in the interface */
+		    glade_xml_signal_autoconnect(cxml);
+			if(cxml==NULL)
 				fprintf(stderr,"Could not locate NotFoundWindow widget\n");
-			else
-				gtk_widget_show(GTK_WIDGET(w));
+			gtk_window_present(GTK_WINDOW(glade_xml_get_widget(cxml, "NotFoundWindow")));
 		}
 		else
 			update_current_user(nu);
 	}
 }
 
-void close_notfoundwindow(GtkWidget *t, gpointer data)
+void close_this_window(GtkWidget *t, gpointer data)
+{
+	gtk_widget_destroy(GTK_WIDGET(gtk_widget_get_toplevel(t)));
+}
+
+int got_date;
+
+void destroy_calendar_window(GtkWidget *t, gpointer data)
+{
+	if(!got_date)
+		gtk_main_quit();
+}
+
+void changed_day(GtkWidget *t, gpointer data)
+{
+	got_date=1;
+	gtk_main_quit();
+}
+
+int get_date(GtkWidget *t, isoDate_t *date)
+{
+	GladeXML	*cxml;
+	GtkWidget	*w;
+	GtkWidget	*win;
+	GtkWidget	*thiswin;
+	gint		x,x_off;
+	gint		y,y_off;
+	guint		year;
+	guint		month;
+	guint		day;
+	isoDate_t	odate=*date;
+
+	got_date=0;
+    cxml = glade_xml_new("gtkuseredit.glade", "CalendarWindow", NULL);
+	if(cxml==NULL) {
+		fprintf(stderr,"Could not locate Calendar Window XML\n");
+		return(-1);
+	}
+    /* connect the signals in the interface */
+    glade_xml_signal_autoconnect(cxml);
+	win=glade_xml_get_widget(cxml, "CalendarWindow");
+	if(win==NULL) {
+		fprintf(stderr,"Could not locate Calendar window\n");
+		return(-1);
+	}
+
+	thiswin = gtk_widget_get_toplevel(t);
+	if(thiswin==NULL) {
+		fprintf(stderr,"Could not locate main window\n");
+		return(-1);
+	}
+	if(!(gtk_widget_translate_coordinates(GTK_WIDGET(t)
+			,GTK_WIDGET(thiswin), 0, 0, &x_off, &y_off))) {
+		fprintf(stderr,"Could not get position of button in window");
+	}
+	gtk_window_get_position(GTK_WINDOW(thiswin), &x, &y);
+
+	gtk_window_move(GTK_WINDOW(win), x+x_off, y+y_off);
+
+	w=glade_xml_get_widget(cxml, "Calendar");
+	if(w==NULL) {
+		fprintf(stderr,"Could not locate Calendar widget\n");
+		return(-1);
+	}
+	gtk_calendar_select_month(GTK_CALENDAR(w), isoDate_month(*date)-1, isoDate_year(*date));
+	gtk_calendar_select_day(GTK_CALENDAR(w), isoDate_day(*date));
+	gtk_window_present(GTK_WINDOW(win));
+	/* Wait for window to close... */
+	gtk_main();
+	w=glade_xml_get_widget(cxml, "Calendar");
+	if(w==NULL)
+		return(-1);
+	gtk_calendar_get_date(GTK_CALENDAR(w), &year, &month, &day);
+	gtk_widget_destroy(GTK_WIDGET(gtk_widget_get_toplevel(GTK_WIDGET(w))));
+	*date=isoDate_create(year, month+1, day);
+	return(odate!=*date);
+}
+
+void get_expiration(GtkWidget *t, gpointer data)
+{
+	isoDate_t	date;
+	GtkWidget	*w;
+	char		str[9];
+
+	date=time_to_isoDate(user.expire?user.expire:time(NULL));
+	if(!get_date(t, &date)) {
+		user.expire = isoDateTime_to_time(date,0);
+		user_changed(t, data);
+		w=glade_xml_get_widget(xml, "eExpiration");
+		if(w==NULL)
+			fprintf(stderr,"Cannot get the expiration widget\n");
+		else {
+			if(user.expire)
+				unixtodstr(&cfg, user.expire, str);
+			else
+				strcpy(str,"Never");
+			gtk_entry_set_text(GTK_ENTRY(w),str);
+		}
+	}
+}
+
+void clear_expire(GtkWidget *t, gpointer data)
 {
 	GtkWidget	*w;
 
-	w=glade_xml_get_widget(xml, "NotFoundWindow");
+	w=glade_xml_get_widget(xml, "eExpiration");
 	if(w==NULL)
-		fprintf(stderr,"Could not locate NotFoundWindow widget\n");
+		fprintf(stderr,"Cannot get the expiration widget\n");
+	user.expire=0;
+	gtk_entry_set_text(GTK_ENTRY(w),"Never");
+	user_changed(t,data);
+}
+
+void get_birthdate(GtkWidget *t, gpointer data)
+{
+	isoDate_t	date;
+	GtkWidget	*w;
+	int			year;
+	char		str[9];
+
+	year=atoi(user.birth+6)+1900;
+	if(year<Y2K_2DIGIT_WINDOW)
+		year+=100;
+	if(cfg.sys_misc&SM_EURODATE)
+		date=isoDate_create(year, atoi(user.birth+3), atoi(user.birth));
 	else
-		gtk_widget_hide(GTK_WIDGET(w));
+		date=isoDate_create(year, atoi(user.birth), atoi(user.birth+3));
+	if(!get_date(t, &date)) {
+		if(cfg.sys_misc&SM_EURODATE)
+			sprintf(user.birth,"%02u/%02u/%02u",isoDate_day(date),isoDate_month(date),isoDate_year(date));
+		else
+			sprintf(user.birth,"%02u/%02u/%02u",isoDate_month(date),isoDate_day(date),isoDate_year(date));
+		user_changed(t, data);
+		w=glade_xml_get_widget(xml, "eBirthdate");
+		if(w==NULL)
+			fprintf(stderr,"Cannot get the birthdate widget\n");
+		else
+			gtk_entry_set_text(GTK_ENTRY(w),user.birth);
+	}
+}
+
+
+void get_firston(GtkWidget *t, gpointer data)
+{
+	isoDate_t	date;
+	GtkWidget	*w;
+	char		str[9];
+
+	date=time_to_isoDate(user.firston?user.firston:time(NULL));
+	if(!get_date(t, &date)) {
+		user.firston = isoDateTime_to_time(date,0);
+		user_changed(t, data);
+		w=glade_xml_get_widget(xml, "eFirstOn");
+		if(w==NULL)
+			fprintf(stderr,"Cannot get the first on widget\n");
+		else {
+			if(user.firston)
+				unixtodstr(&cfg, user.firston, str);
+			else
+				strcpy(str,"Never");
+			gtk_entry_set_text(GTK_ENTRY(w),str);
+		}
+	}
+}
+
+void clear_firston(GtkWidget *t, gpointer data)
+{
+	GtkWidget	*w;
+
+	w=glade_xml_get_widget(xml, "eFirstOn");
+	if(w==NULL)
+		fprintf(stderr,"Cannot get the first on widget\n");
+	user.firston=0;
+	gtk_entry_set_text(GTK_ENTRY(w),"Never");
+	user_changed(t,data);
+}
+
+void get_laston(GtkWidget *t, gpointer data)
+{
+	isoDate_t	date;
+	GtkWidget	*w;
+	char		str[9];
+
+	date=time_to_isoDate(user.laston?user.laston:time(NULL));
+	if(!get_date(t, &date)) {
+		user.laston = isoDateTime_to_time(date,0);
+		user_changed(t, data);
+		w=glade_xml_get_widget(xml, "eLastOn");
+		if(w==NULL)
+			fprintf(stderr,"Cannot get the expiration widget\n");
+		else {
+			if(user.laston)
+				unixtodstr(&cfg, user.laston, str);
+			else
+				strcpy(str,"Never");
+			gtk_entry_set_text(GTK_ENTRY(w),str);
+		}
+	}
+}
+
+void clear_laston(GtkWidget *t, gpointer data)
+{
+	GtkWidget	*w;
+
+	w=glade_xml_get_widget(xml, "eLastOn");
+	if(w==NULL)
+		fprintf(stderr,"Cannot get the expiration widget\n");
+	user.laston=0;
+	gtk_entry_set_text(GTK_ENTRY(w),"Never");
+	user_changed(t,data);
 }
diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.c b/src/sbbs3/gtkuseredit/gtkuseredit.c
index 8608f2d4d534f2607ee34ab84599f45552a7317e..38f32d26311d0e6b9d7c20f3510d11cf2c4a3bdc 100644
--- a/src/sbbs3/gtkuseredit/gtkuseredit.c
+++ b/src/sbbs3/gtkuseredit/gtkuseredit.c
@@ -127,7 +127,7 @@ int main(int argc, char *argv[]) {
     glade_init();
 
     /* load the interface */
-    xml = glade_xml_new("gtkuseredit.glade", NULL, NULL);
+    xml = glade_xml_new("gtkuseredit.glade", "MainWindow", NULL);
     /* connect the signals in the interface */
     glade_xml_signal_autoconnect(xml);
 	/* Set up the global config stuff. */
diff --git a/src/sbbs3/gtkuseredit/gtkuseredit.glade b/src/sbbs3/gtkuseredit/gtkuseredit.glade
index 2ad899bd310976b930592e898b50e69a626842a3..80272c23e7988c854cf96e1fde3aa24a0bff7af5 100644
--- a/src/sbbs3/gtkuseredit/gtkuseredit.glade
+++ b/src/sbbs3/gtkuseredit/gtkuseredit.glade
@@ -1064,7 +1064,7 @@
 			<widget class="GtkEntry" id="eBirthdate">
 			  <property name="visible">True</property>
 			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
+			  <property name="editable">False</property>
 			  <property name="visibility">True</property>
 			  <property name="max_length">8</property>
 			  <property name="text" translatable="yes"></property>
@@ -1082,7 +1082,37 @@
 		      </child>
 
 		      <child>
-			<placeholder/>
+			<widget class="GtkHBox" id="hbox48">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkButton" id="button3">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">...</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <signal name="clicked" handler="get_birthdate" last_modification_time="Sun, 07 May 2006 04:16:53 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <placeholder/>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
 		      </child>
 		    </widget>
 		    <packing>
@@ -1634,18 +1664,87 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkEntry" id="eExpiration">
+		    <widget class="GtkHBox" id="hbox46">
 		      <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">8</property>
-		      <property name="text" translatable="yes"></property>
-		      <property name="has_frame">True</property>
-		      <property name="invisible_char">*</property>
-		      <property name="activates_default">False</property>
-		      <property name="width_chars">8</property>
-		      <signal name="changed" handler="user_changed" last_modification_time="Thu, 23 Mar 2006 03:27:38 GMT"/>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkEntry" id="eExpiration">
+			  <property name="visible">True</property>
+			  <property name="editable">False</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">8</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char">*</property>
+			  <property name="activates_default">False</property>
+			  <property name="width_chars">8</property>
+			  <signal name="changed" handler="user_changed" last_modification_time="Thu, 23 Mar 2006 03:27:38 GMT"/>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox47">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkButton" id="button1">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">...</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <signal name="clicked" handler="get_expiration" last_modification_time="Sun, 07 May 2006 01:11:15 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkButton" id="bClearExpire">
+			      <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_expire" last_modification_time="Sun, 07 May 2006 03:22:27 GMT"/>
+
+			      <child>
+				<widget class="GtkImage" id="image1">
+				  <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>
+			      </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>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -6063,30 +6162,6 @@
 			    </packing>
 			  </child>
 
-			  <child>
-			    <widget class="GtkEntry" id="eFirstOn">
-			      <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">8</property>
-			      <property name="text" translatable="yes"></property>
-			      <property name="has_frame">True</property>
-			      <property name="invisible_char">*</property>
-			      <property name="activates_default">False</property>
-			      <property name="width_chars">8</property>
-			      <signal name="changed" handler="user_changed" last_modification_time="Thu, 23 Mar 2006 03:30:59 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options"></property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
 			  <child>
 			    <widget class="GtkLabel" id="label42">
 			      <property name="visible">True</property>
@@ -6116,26 +6191,164 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkEntry" id="eLastOn">
+			    <widget class="GtkHBox" id="hbox49">
 			      <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">8</property>
-			      <property name="text" translatable="yes"></property>
-			      <property name="has_frame">True</property>
-			      <property name="invisible_char">*</property>
-			      <property name="activates_default">False</property>
-			      <property name="width_chars">8</property>
-			      <signal name="changed" handler="user_changed" last_modification_time="Thu, 23 Mar 2006 03:31:07 GMT"/>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">0</property>
+
+			      <child>
+				<widget class="GtkEntry" id="eFirstOn">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">False</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">8</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char">*</property>
+				  <property name="activates_default">False</property>
+				  <property name="width_chars">8</property>
+				  <signal name="changed" handler="user_changed" last_modification_time="Thu, 23 Mar 2006 03:30:59 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkButton" id="button4">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">...</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <signal name="clicked" handler="get_firston" last_modification_time="Sun, 07 May 2006 04:34:58 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkButton" id="button5">
+				  <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_firston" last_modification_time="Sun, 07 May 2006 04:35:08 GMT"/>
+
+				  <child>
+				    <widget class="GtkImage" id="image2">
+				      <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>
+				  </child>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">1</property>
+			      <property name="right_attach">2</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox50">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">0</property>
+
+			      <child>
+				<widget class="GtkEntry" id="eLastOn">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">False</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">8</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char">*</property>
+				  <property name="activates_default">False</property>
+				  <property name="width_chars">8</property>
+				  <signal name="changed" handler="user_changed" last_modification_time="Thu, 23 Mar 2006 03:31:07 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkButton" id="button6">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">...</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <signal name="clicked" handler="get_laston" last_modification_time="Sun, 07 May 2006 04:36:12 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkButton" id="button7">
+				  <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_laston" last_modification_time="Sun, 07 May 2006 04:36:19 GMT"/>
+
+				  <child>
+				    <widget class="GtkImage" id="image3">
+				      <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>
+				  </child>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
 			      <property name="right_attach">2</property>
 			      <property name="top_attach">1</property>
 			      <property name="bottom_attach">2</property>
-			      <property name="x_options"></property>
-			      <property name="y_options"></property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options">fill</property>
 			    </packing>
 			  </child>
 			</widget>
@@ -8420,7 +8633,8 @@
 </widget>
 
 <widget class="GtkAboutDialog" id="AboutWindow">
-  <property name="destroy_with_parent">False</property>
+  <property name="visible">True</property>
+  <property name="destroy_with_parent">True</property>
   <property name="name" translatable="yes">Synchronet User Editor</property>
   <property name="copyright" translatable="yes">Copyright 2006 by Rob Swindell</property>
   <property name="comments" translatable="yes">This program may be distributed under the terms of the GNU General Public Licence Version 2.</property>
@@ -8431,13 +8645,44 @@
   <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
 </widget>
 
-<widget class="GtkDialog" id="NotFoundWindow">
-  <property name="title" translatable="yes">User Not Found</property>
+<widget class="GtkWindow" id="CalendarWindow">
+  <property name="title" translatable="yes">Calendar</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">True</property>
   <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
+  <property name="destroy_with_parent">True</property>
+  <property name="icon_name"></property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">True</property>
+  <property name="skip_pager_hint">True</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <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="destroy_calendar_window" last_modification_time="Sun, 07 May 2006 04:15:11 GMT"/>
+
+  <child>
+    <widget class="GtkCalendar" id="Calendar">
+      <property name="visible">True</property>
+      <property name="can_focus">True</property>
+      <property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES</property>
+      <signal name="day_selected_double_click" handler="changed_day" last_modification_time="Sun, 07 May 2006 02:26:35 GMT"/>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="NotFoundWindow">
+  <property name="width_request">215</property>
+  <property name="height_request">88</property>
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">User Not Found</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_CENTER</property>
+  <property name="modal">True</property>
+  <property name="resizable">False</property>
+  <property name="destroy_with_parent">True</property>
+  <property name="icon_name">gtk-dialog-error</property>
   <property name="decorated">True</property>
   <property name="skip_taskbar_hint">False</property>
   <property name="skip_pager_hint">False</property>
@@ -8448,18 +8693,18 @@
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
+    <widget class="GtkVBox" id="dialog-vbox2">
       <property name="visible">True</property>
       <property name="homogeneous">False</property>
       <property name="spacing">0</property>
 
       <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area1">
+	<widget class="GtkHButtonBox" id="dialog-action_area2">
 	  <property name="visible">True</property>
 	  <property name="layout_style">GTK_BUTTONBOX_END</property>
 
 	  <child>
-	    <widget class="GtkButton" id="okbutton1">
+	    <widget class="GtkButton" id="NotFoundOKButton">
 	      <property name="visible">True</property>
 	      <property name="can_default">True</property>
 	      <property name="can_focus">True</property>
@@ -8468,6 +8713,7 @@
 	      <property name="relief">GTK_RELIEF_NORMAL</property>
 	      <property name="focus_on_click">True</property>
 	      <property name="response_id">-5</property>
+	      <signal name="clicked" handler="close_this_window" last_modification_time="Sun, 07 May 2006 02:19:24 GMT"/>
 	    </widget>
 	  </child>
 	</widget>
@@ -8480,12 +8726,12 @@
       </child>
 
       <child>
-	<widget class="GtkLabel" id="label73">
+	<widget class="GtkLabel" id="label75">
 	  <property name="visible">True</property>
 	  <property name="label" translatable="yes">Could not find the user specified.</property>
 	  <property name="use_underline">False</property>
 	  <property name="use_markup">False</property>
-	  <property name="justify">GTK_JUSTIFY_LEFT</property>
+	  <property name="justify">GTK_JUSTIFY_CENTER</property>
 	  <property name="wrap">False</property>
 	  <property name="selectable">False</property>
 	  <property name="xalign">0.5</property>
@@ -8500,7 +8746,7 @@
 	<packing>
 	  <property name="padding">0</property>
 	  <property name="expand">True</property>
-	  <property name="fill">True</property>
+	  <property name="fill">False</property>
 	</packing>
       </child>
     </widget>