diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp
index 55e67715d93551d0f93385c1040f1b45fa0defa4..eaf7cebef613c0052aebd5b8f5ec2a9eaefdf10d 100644
--- a/indra/llplugin/llpluginprocessparent.cpp
+++ b/indra/llplugin/llpluginprocessparent.cpp
@@ -378,6 +378,12 @@ void LLPluginProcessParent::idle(void)
 				apr_sockaddr_t* addr = NULL;
 				mListenSocket = LLSocket::create(gAPRPoolp, LLSocket::STREAM_TCP);
 				mBoundPort = 0;
+				if (!mListenSocket)
+				{
+					killSockets();
+					errorState();
+					break;
+				}
 				
 				// This code is based on parts of LLSocket::create() in lliosocket.cpp.