diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index 0b7b9cbbc7aef373ff5a50e735dd34be8c922627..9e7a8ba95c3b4d2c7ad4ca134523790fa1011fd5 100644
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -48,11 +48,18 @@ LLChannelManager::LLChannelManager()
 	LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLChannelManager::onLoginCompleted, this));
 	mChannelList.clear();
 	mStartUpChannel = NULL;
-	
+
 	if(!gViewerWindow)
 	{
 		LL_ERRS() << "LLChannelManager::LLChannelManager() - viwer window is not initialized yet" << LL_ENDL;
 	}
+
+	// We don't actually need this instance right now, but our
+	// cleanupSingleton() method deletes LLScreenChannels, which need to
+	// unregister from LLUI. Calling LLUI::instance() here establishes the
+	// dependency so LLSingletonBase::deleteAll() calls our deleteSingleton()
+	// before LLUI::deleteSingleton().
+	LLUI::instance();
 }
 
 //--------------------------------------------------------------------------