Index: bitlbee.h
===================================================================
--- bitlbee.h	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ bitlbee.h	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -137,5 +137,4 @@
 #include "log.h"
 #include "ini.h"
-#include "help.h"
 #include "query.h"
 #include "sock.h"
@@ -147,5 +146,5 @@
 	int listen_socket;
 	gint listen_watch_source_id;
-	help_t *help;
+	struct help *help;
 	char *conf_file;
 	conf_t *conf;
Index: doc/user-guide/misc.xml
===================================================================
--- doc/user-guide/misc.xml	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ doc/user-guide/misc.xml	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -268,6 +268,39 @@
 </sect1>
 
+<sect1 id="whatsnew010206">
+<title>New stuff in BitlBee 1.2.6</title>
+
+<para>
+Twitter support. See <emphasis>help account add twitter</emphasis>.
+</para>
+</sect1>
+
+<sect1 id="whatsnew010300">
+<title>New stuff in BitlBee 1.3dev</title>
+
+<para>
+Support for multiple configurable control channels, each with a subset of
+your contact list. See <emphasis>help channels</emphasis> for more
+information.
+</para>
+
+<para>
+File transfer support for some protocols (more if you use libpurple). Just
+/DCC SEND stuff. Incoming files also become DCC transfers.
+</para>
+
+<para>
+Only if you run your own BitlBee instance: You can build a BitlBee that uses
+libpurple for connecting to IM networks instead of its own code, adding
+support for some of the more obscure IM protocols and features.
+</para>
+
+<para>
+Many more things, briefly described in <emphasis>help news1.3</emphasis>.
+</para>
+</sect1>
+
 <sect1 id="news1.3">
-<title>New stuff in BitlBee 1.3dev</title>
+<title>New stuff in BitlBee 1.3dev (details)</title>
 
 <para>
Index: help.c
===================================================================
--- help.c	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ help.c	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -2,5 +2,5 @@
   * BitlBee -- An IRC to other IM-networks gateway                     *
   *                                                                    *
-  * Copyright 2002-2009 Wilmer van der Gaast and others                *
+  * Copyright 2002-2010 Wilmer van der Gaast and others                *
   \********************************************************************/
 
@@ -26,4 +26,5 @@
 #define BITLBEE_CORE
 #include "bitlbee.h"
+#include "help.h"
 #undef read 
 #undef write
@@ -194,2 +195,23 @@
 	return 1;
 }
+
+char *help_get_whatsnew( help_t **help, int old )
+{
+	GString *ret = NULL;
+	help_t *h;
+	int v;
+	
+	for( h = *help; h; h = h->next )
+		if( h->title != NULL && strncmp( h->title, "whatsnew", 8 ) == 0 &&
+		    sscanf( h->title + 8, "%x", &v ) == 1 && v > old )
+		{
+			char *s = help_get( &h, h->title );
+			if( ret == NULL )
+				ret = g_string_new( s );
+			else
+				g_string_append_printf( ret, "\n\n%s", s );
+			g_free( s );
+		}
+	
+	return ret ? g_string_free( ret, FALSE ) : NULL;
+}
Index: help.h
===================================================================
--- help.h	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ help.h	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -47,4 +47,5 @@
 char *help_get( help_t **help, char *title );
 int help_add_mem( help_t **help, const char *title, const char *content_ );
+char *help_get_whatsnew( help_t **help, int old );
 
 #endif
Index: irc.c
===================================================================
--- irc.c	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ irc.c	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -112,4 +112,5 @@
 	s = set_add( &b->set, "last_version", NULL, NULL, irc );
 	s->flags |= SET_HIDDEN;
+	s->value = g_strdup_printf( "%d", BITLBEE_VERSION_CODE );
 	s = set_add( &b->set, "lcnicks", "true", set_eval_bool, irc );
 	s = set_add( &b->set, "nick_format", "%-@nick", NULL, irc );
Index: irc_commands.c
===================================================================
--- irc_commands.c	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ irc_commands.c	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -26,4 +26,5 @@
 #define BITLBEE_CORE
 #include "bitlbee.h"
+#include "help.h"
 #include "ipc.h"
 
Index: irc_send.c
===================================================================
--- irc_send.c	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ irc_send.c	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -114,5 +114,5 @@
 	irc_channel_t *ic = NULL;
 	irc_user_t *iu = irc->root;
-	char text[1024];
+	char text[1100];
 	va_list params;
 	char *dst;
Index: root_commands.c
===================================================================
--- root_commands.c	(revision d6657ce1d4fa016bfa0e013f29351229e2cc23d1)
+++ root_commands.c	(revision 674a01d4640fd869d54e1b9f1474986fda2994de)
@@ -1293,35 +1293,19 @@
 {
 	int last = set_getint( &irc->b->set, "last_version" );
-	GString *msg = g_string_new( "" );
-	char s[16];
+	char s[16], *msg;
 	
 	if( last >= BITLBEE_VERSION_CODE )
 		return;
 	
-	if( last < 0x010206 ) /* 1.2.6 */
-	{
-		g_string_append( msg,
-			"Twitter support. See \x02help account add twitter\x02.\n" );
-	}
-	if( last < 0x010300 ) /* 1.3dev */
-	{
-		g_string_append( msg,
-			"Support for multiple configurable control channels, "
-			"each with a subset of your contact list. See "
-			"\x02help channels\x02 for more information.\n"
-			"File transfer support for some protocols (more if "
-			"you use libpurple). Just /DCC SEND stuff. Incoming "
-			"files also become DCC transfers.\n"
-			"Many more things, briefly described in "
-			"\x02help news1.3\x02.\n" );
-	}
-	
-	if( msg->len > 0 )
+	msg = help_get_whatsnew( &(global.help), last );
+	
+	if( msg )
 		irc_usermsg( irc, "%s: This seems to be your first time using this "
 		                  "this version of BitlBee. Here's a list of new "
 		                  "features you may like to know about:\n\n%s\n",
-		                  irc->user->nick, msg->str );
-	
-	g_string_free( msg, TRUE );
+		                  irc->user->nick, msg );
+	
+	g_free( msg );
+	
 	g_snprintf( s, sizeof( s ), "%d", BITLBEE_VERSION_CODE );
 	set_setstr( &irc->b->set, "last_version", s );
