Index: trunk/src/session.c
===================================================================
--- trunk/src/session.c	(revision 139)
+++ trunk/src/session.c	(working copy)
@@ -297,6 +297,7 @@
 					  const char *info)
 {
 	PurpleConnection *gc;
+	PurpleConnectionError reason;
 	char *msg;
 
 	gc = purple_account_get_connection(session->account);
@@ -314,6 +315,7 @@
 //			msg = g_strdup(_("Error parsing HTTP."));
 //			break;
 		case NATEON_ERROR_SIGN_OTHER:
+			reason = PURPLE_CONNECTION_ERROR_NAME_IN_USE;
 			gc->wants_to_die = TRUE;
 			msg = g_strdup(_("You have signed on from another location."));
 			break;
@@ -327,6 +329,7 @@
 //							 "temporarily."));
 //			break;
 		case NATEON_ERROR_AUTH:
+			//reason = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; //TODO: I don't know how to test this, so will comment it out. Matt
 			msg = g_strdup_printf(_("Unable to authenticate: %s"),
 								  (info == NULL ) ?
 								  _("Unknown error") : info);
@@ -342,9 +345,14 @@
 	}
 
 	nateon_session_disconnect(session);
-
-	purple_connection_error(gc, msg);
-
+	if (reason != NULL)
+	{
+		purple_connection_error_reason(gc, reason, msg);
+	}
+	else
+	{
+		purple_connection_error(gc, msg);
+	}
 	g_free(msg);
 }
 
Index: trunk/src/nateon.c
===================================================================
--- trunk/src/nateon.c	(revision 139)
+++ trunk/src/nateon.c	(working copy)
@@ -528,7 +528,7 @@
 	data->gc = gc;
 	data->account = buddy->name;
 
-	purple_request_input(gc, NULL, buddy->name, NULL,
+	purple_request_input(gc, _("Send Memo"), buddy->name, NULL,
 					   NULL, TRUE, FALSE, NULL,
 					   _("_Send"), G_CALLBACK(send_memo_cb),
 					   _("Close"), G_CALLBACK(close_memo_cb),
@@ -699,18 +699,21 @@
 	/* Can't send more than one file at same time */
 	session = gc->proto_data;
 	ret = TRUE;
-	for (l = session->xfers; l != NULL; l = l->next)
+
+	if (session != NULL)
 	{
-		NateonXfer *xfer;
-		xfer = l->data;
-		if (purple_xfer_get_type(xfer->prpl_xfer) == PURPLE_XFER_SEND &&
-				!strcmp(xfer->who, who))
+		for (l = session->xfers; l != NULL; l = l->next)
 		{
-			ret = FALSE;
-			break;
+			NateonXfer *xfer;
+			xfer = l->data;
+			if (purple_xfer_get_type(xfer->prpl_xfer) == PURPLE_XFER_SEND &&
+					!strcmp(xfer->who, who))
+			{
+				ret = FALSE;
+				break;
+			}
 		}
 	}
-
 	return ret;
 }

