--- src/idle-parser.c.orig	2012-11-16 00:49:32.000000000 -0800
+++ src/idle-parser.c	2012-11-16 13:42:55.000000000 -0800
@@ -230,14 +230,22 @@
 	IdleParserPrivate *priv = IDLE_PARSER_GET_PRIVATE(parser);
 	guint i;
 	guint lasti = 0;
-	gchar *tmp;
+	gchar *tmp, *s;
 	gboolean line_ends = FALSE;
 	guint len;
 	gchar concat_buf[2 * (IRC_MSG_MAXLEN + 3)] = {'\0'};
 
 	g_assert(msg != NULL);
 
-	len = strnlen(msg, IRC_MSG_MAXLEN + 3);
+//	len = strnlen(msg, IRC_MSG_MAXLEN + 3);
+
+        s = msg;
+        len = 0;
+
+        while (*s != '\0' && len < IRC_MSG_MAXLEN + 3) {
+                s++;
+                len++;
+        } 
 
 	for (i = 0; i < len; i++) {
 		if ((msg[i] == '\n' || msg[i] == '\r')) {
