--- src/gtkfunc.c.orig	Sat Nov 13 07:49:38 1999
+++ src/gtkfunc.c	Wed Dec  1 02:08:17 1999
@@ -164,6 +164,8 @@
 
 	GSList *contact;
 
+	gchar *new_message_text;
+
 #ifdef TRACE_FUNCTION
 	g_print( "icq_msgbox\n" );
 #endif
@@ -262,6 +264,8 @@
 
 	if( message_text[ 0 ] == 'm' )
 	{
+		new_message_text = toLocal( message_text );
+
 		table = gtk_table_new(3, 2, FALSE);
 		gtk_box_pack_start( GTK_BOX( mainbox ), table, TRUE, TRUE, 0);
 	
@@ -299,7 +303,7 @@
 		gtk_widget_grab_focus( respond_text );
 
 		gtk_text_insert( GTK_TEXT( text ), NULL, NULL, NULL,
-		                 ( 1 + message_text ), -1 );
+		                 ( 1 + new_message_text ), -1 );
 
 		box = gtk_hbutton_box_new();
 		gtk_button_box_set_layout(GTK_BUTTON_BOX(box), GTK_BUTTONBOX_SPREAD);
@@ -366,6 +370,8 @@
 		gtk_widget_show( readnext_button );
 
 		gtk_widget_show(box);
+
+		g_free( new_message_text );
 	}
 	if( message_text[ 0 ] == 'n' )
 	{
@@ -430,6 +436,8 @@
 
 	if( message_text[ 0 ] == 'f' )
 	{
+		new_message_text = toLocal( message_text );
+
 		table = gtk_table_new( 3, 2, FALSE );
 
 		label = gtk_label_new( _("File Name:") );
@@ -464,7 +472,7 @@
 		g_free( filesize );
 
 		entry = gtk_entry_new();
-		gtk_entry_set_text( GTK_ENTRY( entry ), &message_text[1] );
+		gtk_entry_set_text( GTK_ENTRY( entry ), &new_message_text[1] );
 		gtk_widget_set_usize( entry, 75, 0 );
 		gtk_table_attach_defaults( GTK_TABLE( table ), entry, 1, 2, 2, 3 );
 		gtk_widget_show( entry );
@@ -499,6 +507,8 @@
 	                             GTK_OBJECT(window));
 		gtk_widget_show( button );
 		gtk_widget_show( box );
+
+		g_free( new_message_text );
 	}
 
 	if( message_text[ 0 ] == 'a' )
@@ -534,8 +544,13 @@
 		GtkWidget *url = gtk_entry_new();
 		GtkWidget *desc = gtk_entry_new();
 
-		gchar *curl = (char *)g_malloc( strlen( message_text ) );
-		gchar *cdesc = (char *)g_malloc( strlen( message_text ) );
+		gchar *curl;
+		gchar *cdesc;
+
+		new_message_text = toLocal( message_text );
+
+		curl = (char *)g_malloc( strlen( new_message_text ) );
+		cdesc = (char *)g_malloc( strlen( new_message_text ) );
 
 		gtk_misc_set_alignment( GTK_MISC( message ), 0.0, 0.5 );
 
@@ -544,9 +559,9 @@
 
 		for( cx = 1; ; cx ++ )
 		{
-			if( message_text[ cx ] == '\xFE' || message_text[ cx ] == 0x00 )
+			if( new_message_text[ cx ] == '\xFE' || new_message_text[ cx ] == 0x00 )
 			{
-				if( message_text[ cx ] == 0x00 )
+				if( new_message_text[ cx ] == 0x00 )
 				{
 					url_len = cx - 2 - desc_len;
 					break;
@@ -556,11 +571,11 @@
 			}
 		}
 
-		memcpy( cdesc, message_text + 1, desc_len );
+		memcpy( cdesc, new_message_text + 1, desc_len );
 		cdesc[ desc_len ] = 0x00;
-		memcpy( curl, message_text + 2 + desc_len, url_len );
+		memcpy( curl, new_message_text + 2 + desc_len, url_len );
 		curl[ url_len ]  = 0x00;
-/*		sscanf( message_text + 1, "%[^\xFE]\xFE%[^\xFE]", cdesc, curl );*/
+/*		sscanf( new_message_text + 1, "%[^\xFE]\xFE%[^\xFE]", cdesc, curl );*/
 		
 		gtk_entry_set_text( GTK_ENTRY( url ), curl );
 		gtk_entry_set_text( GTK_ENTRY( desc ), cdesc );
@@ -603,6 +618,8 @@
 
 		gtk_widget_show( url );
 		gtk_widget_show( desc );
+
+		g_free( new_message_text );
 	}
 	gtk_widget_show( window );
 }
@@ -728,7 +745,7 @@
 
 	buf = gtk_editable_get_chars( GTK_EDITABLE( entry ), 0, -1 );
 
-	icq_sendmsg( ((CONTACT_PTR)contact->data)->uin, buf, ( forced == NULL ? 0 : 1 ) );
+	icq_sendmsg( ((CONTACT_PTR)contact->data)->uin, buf, ( forced == NULL ? 0 : 1 ), FALSE );
 
 	g_free( buf );
 }
@@ -2314,13 +2331,20 @@
 
 	if( ((CONTACT_PTR)contact->data)->messages > 0 )
 	{
+		gchar *message_text;
+
 		sprintf( buf, _("Message from %s:"), ((CONTACT_PTR)contact->data)->nick );
 		gtk_text_set_point( GTK_TEXT( text ), 0 );
 		gtk_text_forward_delete( GTK_TEXT( text ),
 		                         gtk_text_get_length( GTK_TEXT( text ) ) );
 
+		message_text = 1 + ((CONTACT_PTR)contact->data)->message[ 0 ];
+		message_text = toLocal( message_text );
+
 		gtk_text_insert( GTK_TEXT( text ), NULL, NULL, NULL,
-		                 ( 1 + ((CONTACT_PTR)contact->data)->message[ 0 ] ), -1 );
+		                 message_text, -1 );
+
+		g_free( message_text );
 
 		if( ((CONTACT_PTR)contact->data)->messages <= 1 ||
 		    ( ((CONTACT_PTR)contact->data)->messages && ((CONTACT_PTR)contact->data)->message[ 1 ][ 0 ] != 'm' ) )
