--- e-msgport.c	2006-10-06 11:11:44.000000000 -0400
+++ e-msgport.c.new	2006-10-06 11:12:15.000000000 -0400
@@ -1,6 +1,5 @@
 struct _EMsgPort {
 	GAsyncQueue *queue;
-	EMsg *cache;
 	gint pipe[2];  /* on Win32, actually a pair of SOCKETs */
 #ifdef HAVE_NSS
 	PRFileDesc *prpipe[2];
@@ -75,7 +74,6 @@ e_msgport_new (void)
 
 	msgport = g_slice_new (EMsgPort);
 	msgport->queue = g_async_queue_new ();
-	msgport->cache = NULL;
 	msgport->pipe[0] = -1;
 	msgport->pipe[1] = -1;
 #ifdef HAVE_NSS
@@ -196,22 +194,10 @@ e_msgport_wait (EMsgPort *msgport)
 
 	g_async_queue_lock (msgport->queue);
 
-	/* check the cache first */
-	if (msgport->cache != NULL) {
-		msg = msgport->cache;
-		/* don't clear the cache */
-		g_async_queue_unlock (msgport->queue);
-		return msg;
-	}
-
 	msg = g_async_queue_pop_unlocked (msgport->queue);
 
 	g_assert (msg != NULL);
 
-	/* The message is not actually "removed" from the EMsgPort until
- 	 * e_msgport_get() is called.  So we cache the popped message. */
-	msgport->cache = msg;
-
 	if (msg->flags & MSG_FLAG_SYNC_WITH_PIPE)
 		msgport_sync_with_pipe (msgport->pipe[0]);
 #ifdef HAVE_NSS
@@ -233,14 +219,6 @@ e_msgport_get (EMsgPort *msgport)
 
 	g_async_queue_lock (msgport->queue);
 
-	/* check the cache first */
-	if (msgport->cache != NULL) {
-		msg = msgport->cache;
-		msgport->cache = NULL;
-		g_async_queue_unlock (msgport->queue);
-		return msg;
-	}
-
 	msg = g_async_queue_try_pop_unlocked (msgport->queue);
 
 	if (msg != NULL && msg->flags & MSG_FLAG_SYNC_WITH_PIPE)
