Index: configure
===================================================================
--- configure	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ configure	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -31,9 +31,11 @@
 
 events=glib
-ldap=auto
+ldap=0
 ssl=auto
 
 arch=`uname -s`
 cpu=`uname -m`
+
+GLIB_MIN_VERSION=2.4
 
 echo BitlBee configure
@@ -175,11 +177,18 @@
 
 if $PKG_CONFIG --version > /dev/null 2>/dev/null && $PKG_CONFIG glib-2.0; then
-	cat<<EOF>>Makefile.settings
+	if $PKG_CONFIG glib-2.0 --atleast-version=$GLIB_MIN_VERSION; then
+		cat<<EOF>>Makefile.settings
 EFLAGS+=`$PKG_CONFIG --libs glib-2.0 gmodule-2.0`
 CFLAGS+=`$PKG_CONFIG --cflags glib-2.0 gmodule-2.0`
 EOF
-else
+	else
+		echo
+		echo 'Found glib2 '`$PKG_CONFIG glib-2.0 --modversion`', but version '$GLIB_MIN_VERSION' or newer is required.'
+		exit 1
+	fi
+else
+	echo
 	echo 'Cannot find glib2 development libraries, aborting. (Install libglib2-dev?)'
-	exit 1;
+	exit 1
 fi
 
@@ -290,5 +299,5 @@
 elif [ "$ssl" = "bogus" ]; then
 	echo
-	echo 'Using bogus SSL code. This means some features have to be disabled.'
+	echo 'Using bogus SSL code. This means some features will not work properly.'
 	
 	## Yes, you, at the console! How can you authenticate if you don't have any SSL!?
Index: doc/CHANGES
===================================================================
--- doc/CHANGES	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ doc/CHANGES	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -1,3 +1,22 @@
 Version x.x:
+- Added ForkDaemon mode next to the existing Daemon- and inetd modes. With
+  ForkDaemon you can run BitlBee as a stand-alone daemon and every connection
+  will run in its own process. No more need to configure inetd, and still you
+  don't get the stability problems BitlBee unfortunately still has in ordinary
+  (one-process) daemon mode.
+- Added inter-process/connection communication. This made it possible to
+  implement some IRC operator features like WALLOPs, KILL, DIE, REHASH and
+  more.
+- Added hooks for using libevent instead of GLib for event handling. This
+  should improve scalability, although this won't really be useful yet because
+  the one-process daemon mode is not reliable enough.
+- BitlBee now makes the buddy quits when doing "account off" look like a
+  netsplit. Modern IRC clients show this in a different, more compact way.
+- GLib 1.x compatibility was dropped. BitlBee now requires GLib 2.4 or newer.
+  This allows us to use more GLib features (like the XML parser). By now GLib
+  1.x is so old that supporting it really isn't necessary anymore.
+- Many, many, MANY little changes, improvements, fixes. Using non-blocking
+  I/O as much as possible, fixed lots of little bugs (including bugs that
+  affected daemon mode stability). See the bzr logs for more information.
 - Most important change: New file format for user data (accounts, nicks and
   settings). Migration to the new format should happen transparently,
@@ -22,4 +41,59 @@
     and password for the existing connection.
   * Per-account settings (see the new "account set" command).
+
+Version 1.0.3:
+- Fixed ugliness in block/allow list commands (still not perfect though, the
+  list is empty or not up-to-date for most protocols).
+- OSCAR module doesn't send the ICQ web-aware flag anymore, which seems to
+  get rid of a lot of ICQ spam.
+- added show_got_added(), BitlBee asks you, after authorizing someone, if you
+  want to add him/her to your list too.
+- add -tmp, mainly convenient if you want to talk to people who are not in
+  your list.
+- Fixed ISON command, should work better with irssi now.
+- Fixed compilation with tcc.
+- Fixed xinetd-file.
+- Misc. (crash)bug fixes, including one in the root command parsing that
+  caused mysterious error messages sometimes.
+
+Finished 24 Jun 2006 (Happy 4th birthday, BitlBee!)
+
+Version 1.0.2:
+- Pieces of code cleanup, fixes for possible problems in error checking.
+- Fixed an auto-reconnect cleanup problem that caused crashes in daemon mode.
+- /AWAY in daemon mode now doesn't set the away state for every connection
+  anymore.
+- Fixed a crash-bug on empty help subjects.
+- Jabber now correctly sets the current away state when connecting.
+- Added Invisible and Hidden to the away state alias list, invisible mode
+  should be pretty usable now.
+- Fixed handling of iconv(): It's now done for everything that goes between
+  BitlBee and the IRC client, instead of doing it (almost) every time
+  something goes to or come from the IM-modules. Should've thought about
+  that before. :-)
+- When cleaning up MSN switchboards with unsent msgs, it now also says which
+  contact those messages were meant for.
+- You can now use the block and allow commands to see your current block/
+  allow list.
+
+Finished 1 Apr 2006
+
+Version 1.0.1:
+- Support for AIM groupchats.
+- Improved typing notification support for at least AIM.
+- BitlBee sends a 005 reply when logging in, this informs modern IRC clients
+  of some of BitlBee's capabilities. This might also solve problems some
+  people were having with the new control channel name.
+- MSN switchboards are now properly reset when talking to a person who is
+  offline. This fixes problems with messages to MSN people that sometimes
+  didn't arrive.
+- Fixed one of the problems that made BitlBee show online Jabber people as
+  offline.
+- Fixed problems with commas in MSN passwords.
+- Added some consts for read-only data, which should make the BitlBee per-
+  process memory footprint a bit smaller.
+- Other bits of code cleanup.
+
+Finished 14 Jan 2006
 
 Version 1.0:
Index: protocols/msn/msn.c
===================================================================
--- protocols/msn/msn.c	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ protocols/msn/msn.c	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -42,6 +42,4 @@
 	struct msn_data *md = g_new0( struct msn_data, 1 );
 	
-	set_login_progress( gc, 1, "Connecting" );
-	
 	gc->proto_data = md;
 	md->fd = -1;
@@ -54,4 +52,6 @@
 	}
 	
+	set_login_progress( gc, 1, "Connecting" );
+	
 	md->fd = proxy_connect( "messenger.hotmail.com", 1863, msn_ns_connected, gc );
 	if( md->fd < 0 )
@@ -59,12 +59,11 @@
 		hide_login_progress( gc, "Could not connect to server" );
 		signoff( gc );
-	}
-	else
-	{
-		md->gc = gc;
-		md->away_state = msn_away_state_list;
-		
-		msn_connections = g_slist_append( msn_connections, gc );
-	}
+		return;
+	}
+	
+	md->gc = gc;
+	md->away_state = msn_away_state_list;
+	
+	msn_connections = g_slist_append( msn_connections, gc );
 }
 
Index: protocols/nogaim.c
===================================================================
--- protocols/nogaim.c	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ protocols/nogaim.c	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -578,5 +578,5 @@
 	      ( ( u->online == oo ) && ( oa == !u->away ) ) ) )		/* (De)voice people changing state */
 	{
-		irc_write( gc->irc, ":%s!%s@%s MODE %s %cv %s", gc->irc->mynick, gc->irc->mynick, gc->irc->myhost,
+		irc_write( gc->irc, ":%s MODE %s %cv %s", gc->irc->myhost,
 		                                                gc->irc->channel, u->away?'-':'+', u->nick );
 	}
@@ -912,6 +912,6 @@
 				{
 					for( i = 0; i < count; v[i++] = 'v' ); v[i] = 0;
-					irc_write( irc, ":%s!%s@%s MODE %s %c%s%s",
-					           irc->mynick, irc->mynick, irc->myhost,
+					irc_write( irc, ":%s MODE %s %c%s%s",
+					           irc->myhost,
 		        			   irc->channel, pm, v, list );
 					
@@ -928,5 +928,5 @@
 		/* $v = 'v' x $i */
 		for( i = 0; i < count; v[i++] = 'v' ); v[i] = 0;
-		irc_write( irc, ":%s!%s@%s MODE %s %c%s%s", irc->mynick, irc->mynick, irc->myhost,
+		irc_write( irc, ":%s MODE %s %c%s%s", irc->myhost,
 		                                            irc->channel, pm, v, list );
 	}
Index: protocols/oscar/oscar.c
===================================================================
--- protocols/oscar/oscar.c	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ protocols/oscar/oscar.c	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -2297,5 +2297,5 @@
         }
         info_string_append(str, "\n", _("Mobile Phone"), info->mobile);
-        info_string_append(str, "\n", _("Gender"), info->gender==1 ? _("Female") : _("Male"));
+        info_string_append(str, "\n", _("Gender"), info->gender==1 ? _("Female") : info->gender==2 ? _("Male") : _("Unknown"));
         if (info->birthyear || info->birthmonth || info->birthday) {
                 char date[30];
Index: set.c
===================================================================
--- set.c	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ set.c	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -173,5 +173,5 @@
 char *set_eval_int( set_t *set, char *value )
 {
-	char *s;
+	char *s = value;
 	
 	/* Allow a minus at the first position. */
@@ -179,5 +179,5 @@
 		s ++;
 	
-	for( s = value; *s; s ++ )
+	for( ; *s; s ++ )
 		if( !isdigit( *s ) )
 			return NULL;
Index: storage_text.c
===================================================================
--- storage_text.c	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ storage_text.c	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -31,5 +31,5 @@
 {
 	if( access( global.conf->configdir, F_OK ) != 0 )
-		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", CONFIG );
+		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", global.conf->configdir );
 	else if( access( global.conf->configdir, R_OK ) != 0 || access( global.conf->configdir, W_OK ) != 0 )
 		log_message( LOGLVL_WARNING, "Permission problem: Can't read/write from/to %s.", global.conf->configdir );
Index: storage_xml.c
===================================================================
--- storage_xml.c	(revision 66f783fa6365fefe7ba449e6409b4dc1359b155b)
+++ storage_xml.c	(revision e8a621101ade8c19383038cd400ab22bfd0de326)
@@ -263,5 +263,5 @@
 {
 	if( access( global.conf->configdir, F_OK ) != 0 )
-		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", CONFIG );
+		log_message( LOGLVL_WARNING, "The configuration directory %s does not exist. Configuration won't be saved.", global.conf->configdir );
 	else if( access( global.conf->configdir, R_OK ) != 0 || access( global.conf->configdir, W_OK ) != 0 )
 		log_message( LOGLVL_WARNING, "Permission problem: Can't read/write from/to %s.", global.conf->configdir );
