diff --git a/indra/llappearance/lltexlayerparams.cpp b/indra/llappearance/lltexlayerparams.cpp
index 6cbc6bdf34dcca50233317c258c103b898bdef02..49e05465445e5e01d8ff7956138643f069601340 100644
--- a/indra/llappearance/lltexlayerparams.cpp
+++ b/indra/llappearance/lltexlayerparams.cpp
@@ -86,8 +86,7 @@ void LLTexLayerParamAlpha::dumpCacheByteCount()
 {
 	S32 gl_bytes = 0;
 	getCacheByteCount( &gl_bytes);
-	// BUG-2707?
-	//LL_DEBUGS("LLTexLayerParamAlpha") << "Processed Alpha Texture Cache GL:" << (gl_bytes/1024) << "KB" << llendl;
+	LL_DEBUGS("LLTexLayerParamAlpha") << "Processed Alpha Texture Cache GL:" << (gl_bytes/1024) << "KB" << llendl;
 }
 
 // static 
diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp
index bde8bcf36a1ce8bffc5f6c0c6592c5e0c10863c6..1ccb33b259948a03bb53274e3b12d27d89ae9349 100755
--- a/indra/llcommon/llcoros.cpp
+++ b/indra/llcommon/llcoros.cpp
@@ -60,8 +60,7 @@ bool LLCoros::cleanup(const LLSD&)
         // since last tick?
         if (mi->second->exited())
         {
-			   // BUG-2707?
-            //LL_INFOS("LLCoros") << "LLCoros: cleaning up coroutine " << mi->first << LL_ENDL;
+			   LL_INFOS("LLCoros") << "LLCoros: cleaning up coroutine " << mi->first << LL_ENDL;
 
             // The erase() call will invalidate its passed iterator value --
             // so increment mi FIRST -- but pass its original value to
@@ -96,8 +95,7 @@ std::string LLCoros::generateDistinctName(const std::string& prefix) const
     {
         if (mCoros.find(name) == mCoros.end())
         {
-			   //BUG-2707?
-            //LL_INFOS("LLCoros") << "LLCoros: launching coroutine " << name << LL_ENDL;
+			   LL_INFOS("LLCoros") << "LLCoros: launching coroutine " << name << LL_ENDL;
             return name;
         }
     }
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index 2a037fcad923b24e68e07b5e034d16e915fe3f1c..5c8e6cca2905852e7f3fca79035c131db367ad48 100755
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -201,12 +201,7 @@ namespace {
 		virtual void recordMessage(LLError::ELevel level,
 								   const std::string& message)
 		{
-#if BUG_2707_HUNT
-			llutf16string utf16str =
-				wstring_to_utf16str(utf8str_to_wstring(message));
-			utf16str += '\n';
-			OutputDebugString(utf16str.c_str());
-#endif
+			LL_WINDOWS_OUTPUT_DEBUG(wstring_to_utf16str(utf8str_to_wstring(message)));
 		}
 	};
 #endif
diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h
index b65b4101531fb6d42be69dfe6ec4315f0f48acc9..a724c0720f8954201ea82d7cb48185f9a0f69fc5 100755
--- a/indra/llcommon/llerror.h
+++ b/indra/llcommon/llerror.h
@@ -283,6 +283,12 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG;
 #define LL_ENDL llendl
 #define LL_CONT	(*_out)
 
+#if LL_WINDOWS && defined(_DEBUG)
+	#define LL_WINDOWS_OUTPUT_DEBUG(a) OutputDebugString(utf8str_to_utf16str(a).c_str()), OutputDebugString("\n")
+#else
+	#define LL_WINDOWS_OUTPUT_DEBUG(a)
+#endif
+
 	/*
 		Use this construct if you need to do computation in the middle of a
 		message:
diff --git a/indra/llcommon/llevents.cpp b/indra/llcommon/llevents.cpp
index 4c4553168e87c9d26652e0d79feb338aedbfbc5e..49c8178b421f74b3342a59efffd8cc5314856e57 100755
--- a/indra/llcommon/llevents.cpp
+++ b/indra/llcommon/llevents.cpp
@@ -570,20 +570,18 @@ void LLReqID::stamp(LLSD& response) const
 {
     if (! (response.isUndefined() || response.isMap()))
     {
-		  // BUG-2707?
         // If 'response' was previously completely empty, it's okay to
         // turn it into a map. If it was already a map, then it should be
         // okay to add a key. But if it was anything else (e.g. a scalar),
         // assigning a ["reqid"] key will DISCARD the previous value,
         // replacing it with a map. That would be Bad.
-        //LL_INFOS("LLReqID") << "stamp(" << mReqid << ") leaving non-map response unmodified: " << response << LL_ENDL;
+        LL_INFOS("LLReqID") << "stamp(" << mReqid << ") leaving non-map response unmodified: " << response << LL_ENDL;
         return;
     }
     LLSD oldReqid(response["reqid"]);
     if (! (oldReqid.isUndefined() || llsd_equals(oldReqid, mReqid)))
     {
-		  // BUG-2707?
-        //LL_INFOS("LLReqID") << "stamp(" << mReqid << ") preserving existing [\"reqid\"] value "<< oldReqid << " in response: " << response << LL_ENDL;
+		  LL_INFOS("LLReqID") << "stamp(" << mReqid << ") preserving existing [\"reqid\"] value "<< oldReqid << " in response: " << response << LL_ENDL;
         return;
     }
     response["reqid"] = mReqid;
diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp
index 33215401c6bfdec96cdfcb5905e0da3f43f36427..44ba84c160b10f04e02dc9b5397eeeb2993e4ea8 100755
--- a/indra/llcommon/llmemory.cpp
+++ b/indra/llcommon/llmemory.cpp
@@ -1731,8 +1731,7 @@ void LLPrivateMemoryPool::removeFromHashTable(LLMemoryChunk* chunk)
 
 void LLPrivateMemoryPool::rehash()
 {
-	//BUG-2707?
-	//LL_DEBUGS(LLMemory) << "new hash factor: " << mHashFactor << llendl ;
+	LL_DEBUGS("LLMemory") << "new hash factor: " << mHashFactor << llendl ;
 
 	mChunkHashList.clear() ;
 	mChunkHashList.resize(mHashFactor) ;
diff --git a/indra/llcommon/llmetrics.cpp b/indra/llcommon/llmetrics.cpp
index ac643095b1c5beec118f46b3f454f73bdd3245b7..3078139f43c0bed18d3acfa4f40fbe37bf8fad75 100755
--- a/indra/llcommon/llmetrics.cpp
+++ b/indra/llcommon/llmetrics.cpp
@@ -65,8 +65,7 @@ void LLMetricsImpl::recordEventDetails(const std::string& location,
 	metrics["location"] = location;
 	metrics["stats"]  = stats;
 	
-	// BUG-2707?
-	//llinfos << "LLMETRICS: " << (LLSDNotationStreamer(metrics)) << llendl; 
+	llinfos << "LLMETRICS: " << (LLSDNotationStreamer(metrics)) << llendl; 
 }
 
 // Store this:
@@ -129,8 +128,7 @@ void LLMetricsImpl::printTotals(LLSD metadata)
 
 	out_sd["stats"] = stats;
 
-	// BUG-2707?
-	//llinfos << "LLMETRICS: AGGREGATE: " << LLSDOStreamer<LLSDNotationFormatter>(out_sd) << llendl;
+	llinfos << "LLMETRICS: AGGREGATE: " << LLSDOStreamer<LLSDNotationFormatter>(out_sd) << llendl;
 }
 
 LLMetrics::LLMetrics()
diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index 1f87c3ae0605a80a89439672eaba6a7a93d3921e..5d3595a66f36481ea82e788924a26147aaa61edf 100755
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -1385,7 +1385,7 @@ class FrameWatcher
             return false;
         }
         // Congratulations, we've hit a new low.  :-P
-#if BUG_2707_A_LOWER_KIND_OF_LOW
+#if _DEBUG
         LL_INFOS("FrameWatcher") << ' ';
         if (! prevSize)
         {
diff --git a/indra/llmessage/llurlrequest.cpp b/indra/llmessage/llurlrequest.cpp
index 05de4bd346c0ef6d6e4d8afc3281d9618e2cf5d3..1946e19c4b1a19d3ba8c1115fde1e4a4385377af 100755
--- a/indra/llmessage/llurlrequest.cpp
+++ b/indra/llmessage/llurlrequest.cpp
@@ -314,13 +314,11 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
 		 const F32 TIMEOUT_ADJUSTMENT = 2.0f;
 		 mDetail->mByteAccumulator = 0;
 		 pump->adjustTimeoutSeconds(TIMEOUT_ADJUSTMENT);
-// BUG-2707?
-		 //lldebugs << "LLURLRequest adjustTimeoutSeconds for request: " << mDetail->mURL << llendl;
-		 if (mState == STATE_INITIALIZED)
-		 {
-// BUG-2707?
-			  //llinfos << "LLURLRequest adjustTimeoutSeconds called during upload" << llendl;
-		 }
+		lldebugs << "LLURLRequest adjustTimeoutSeconds for request: " << mDetail->mURL << llendl;
+		if (mState == STATE_INITIALIZED)
+		{
+			llinfos << "LLURLRequest adjustTimeoutSeconds called during upload" << llendl;
+		}
 	}
 
 	switch(mState)
@@ -384,8 +382,7 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
 			context[CONTEXT_REQUEST][CONTEXT_TRANSFERED_BYTES] = mRequestTransferedBytes;
 			context[CONTEXT_RESPONSE][CONTEXT_TRANSFERED_BYTES] = mResponseTransferedBytes;
 
-			// BUG-2707?
-			//lldebugs << this << "Setting context to " << context << llendl;
+			lldebugs << this << "Setting context to " << context << llendl;
 
 			switch(result)
 			{
@@ -441,8 +438,7 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
 		eos = true;
 		context[CONTEXT_REQUEST][CONTEXT_TRANSFERED_BYTES] = mRequestTransferedBytes;
 		context[CONTEXT_RESPONSE][CONTEXT_TRANSFERED_BYTES] = mResponseTransferedBytes;
-		// BUG-2707?
-		//lldebugs << this << "Setting context to " << context << llendl;
+		lldebugs << this << "Setting context to " << context << llendl;
 
 		return STATUS_DONE;
 
@@ -451,8 +447,7 @@ LLIOPipe::EStatus LLURLRequest::process_impl(
 		context[CONTEXT_REQUEST][CONTEXT_TRANSFERED_BYTES] = mRequestTransferedBytes;
 		context[CONTEXT_RESPONSE][CONTEXT_TRANSFERED_BYTES] = mResponseTransferedBytes;
 
-		// BUG-2707?
-		//lldebugs << this << "Setting context to " << context << llendl;
+		lldebugs << this << "Setting context to " << context << llendl;
 		return STATUS_ERROR;
 	}
 }
diff --git a/indra/llui/llxuiparser.cpp b/indra/llui/llxuiparser.cpp
index 660af973479998de8b1c79fd3028d62a11c6c8d6..4f3a2e06233779d13e77d4d3b8a40104b4b43117 100755
--- a/indra/llui/llxuiparser.cpp
+++ b/indra/llui/llxuiparser.cpp
@@ -1309,12 +1309,9 @@ bool LLXUIParser::writeSDValue(Parser& parser, const void* val_ptr, name_stack_t
 void LLXUIParser::parserWarning(const std::string& message)
 {
 #ifdef LL_WINDOWS
-#if BUG_2707_HUNT
 	// use Visual Studo friendly formatting of output message for easy access to originating xml
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), mCurReadNode->getLineNumber(), message.c_str()).c_str());
-	utf16str += '\n';
-	OutputDebugString(utf16str.c_str());
-#endif
+	LL_WINDOWS_OUTPUT_DEBUG(utf16str);
 #else
 	Parser::parserWarning(message);
 #endif
@@ -1323,11 +1320,8 @@ void LLXUIParser::parserWarning(const std::string& message)
 void LLXUIParser::parserError(const std::string& message)
 {
 #ifdef LL_WINDOWS
-#if BUG_2707_HUNT
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), mCurReadNode->getLineNumber(), message.c_str()).c_str());
-	utf16str += '\n';
-	OutputDebugString(utf16str.c_str());
-#endif
+	LL_WINDOWS_OUTPUT_DEBUG(utf16str);
 #else
 	Parser::parserError(message);
 #endif
@@ -1644,12 +1638,9 @@ bool LLSimpleXUIParser::processText()
 void LLSimpleXUIParser::parserWarning(const std::string& message)
 {
 #ifdef LL_WINDOWS
-#if BUG_2707_HUNT
 	// use Visual Studo friendly formatting of output message for easy access to originating xml
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), LINE_NUMBER_HERE, message.c_str()).c_str());
-	utf16str += '\n';
-	OutputDebugString(utf16str.c_str());
-#endif
+	LL_WINDOWS_OUTPUT_DEBUG(utf16str);
 #else
 	Parser::parserWarning(message);
 #endif
@@ -1658,11 +1649,8 @@ void LLSimpleXUIParser::parserWarning(const std::string& message)
 void LLSimpleXUIParser::parserError(const std::string& message)
 {
 #ifdef LL_WINDOWS
-#if BUG_2707_HUNT
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), LINE_NUMBER_HERE, message.c_str()).c_str());
-	utf16str += '\n';
-	OutputDebugString(utf16str.c_str());
-#endif
+	LL_WINDOWS_OUTPUT_DEBUG(utf16str);
 #else
 	Parser::parserError(message);
 #endif
diff --git a/indra/media_plugins/winmmshim/winmm_shim.cpp b/indra/media_plugins/winmmshim/winmm_shim.cpp
index aeadb53f31ffaaf961b7fccea3d81abf98912b45..03095d137fbed59c19590687564bcccea0b68c8e 100755
--- a/indra/media_plugins/winmmshim/winmm_shim.cpp
+++ b/indra/media_plugins/winmmshim/winmm_shim.cpp
@@ -56,22 +56,23 @@ void ll_winmm_shim_initialize(){
 		// grab winmm.dll from system path, where it should live
 		wsprintf(dll_path, "%s\\winmm.dll", system_path);
 		HMODULE winmm_handle = ::LoadLibrary(dll_path);
-		
+
 		if (winmm_handle != NULL)
 		{	// we have a dll, let's get out pointers!
 			initialized = true;
 			init_function_pointers(winmm_handle);
-#if BUG_2707_HUNT
+#if defined(_DEBUG)
 			::OutputDebugStringA("WINMM_SHIM.DLL: real winmm.dll initialized successfully\n");
 #endif
 		}
+#if defined(_DEBUG)
 		else
 		{
 			// failed to initialize real winmm.dll
-#if BUG_2707_HUNT
 			::OutputDebugStringA("WINMM_SHIM.DLL: Failed to initialize real winmm.dll\n");
-#endif
 		}
+#endif
+
 	}
 	LeaveCriticalSection(&sCriticalSection);
 }
diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp
index 27c91e2c142bebbc6709bd28fee0d40bf09b8a1a..ae327a26d29bc032549bce901d03bfb3ef02c021 100755
--- a/indra/viewer_components/login/lllogin.cpp
+++ b/indra/viewer_components/login/lllogin.cpp
@@ -117,8 +117,7 @@ class LLLogin::Impl
 
 void LLLogin::Impl::connect(const std::string& uri, const LLSD& login_params)
 {
-    // BUG-2707?
-    //LL_DEBUGS("LLLogin") << " connect with  uri '" << uri << "', login_params " << login_params << LL_ENDL;
+    LL_DEBUGS("LLLogin") << " connect with  uri '" << uri << "', login_params " << login_params << LL_ENDL;
 	
     // Launch a coroutine with our login_() method. Run the coroutine until
     // its first wait; at that point, return here.
@@ -126,8 +125,7 @@ void LLLogin::Impl::connect(const std::string& uri, const LLSD& login_params)
         LLCoros::instance().launch("LLLogin::Impl::login_",
                                    boost::bind(&Impl::login_, this, _1, uri, login_params));
 
-    // BUG-2707?
-    //LL_DEBUGS("LLLogin") << " connected with  uri '" << uri << "', login_params " << login_params << LL_ENDL;	
+    LL_DEBUGS("LLLogin") << " connected with  uri '" << uri << "', login_params " << login_params << LL_ENDL;	
 }
 
 void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_params)
@@ -142,9 +140,8 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para
 	//}
 	//
 	//
-// BUG-2707?
-//    LL_DEBUGS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self)
-//                        << " with uri '" << uri << "', parameters " << printable_params << LL_ENDL;
+	LL_DEBUGS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self)
+                        << " with uri '" << uri << "', parameters " << printable_params << LL_ENDL;
 
 	// Arriving in SRVRequest state
     LLEventStream replyPump("SRVreply", true);
@@ -152,25 +149,24 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para
 
     LLSD rewrittenURIs;
     {
-        LLEventTimeout filter(replyPump);
-        sendProgressEvent("offline", "srvrequest");
+		LLEventTimeout filter(replyPump);
+		sendProgressEvent("offline", "srvrequest");
 
-        // Request SRV record.
-	// BUG-2707?
-        //LL_DEBUGS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL;
+      // Request SRV record.
+		LL_DEBUGS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL;
 
-
-        // *NOTE:Mani - Completely arbitrary default timeout value for SRV request.
+      // *NOTE:Mani - Completely arbitrary default timeout value for SRV request.
 		F32 seconds_to_timeout = 5.0f;
 		if(login_params.has("cfg_srv_timeout"))
 		{
 			seconds_to_timeout = login_params["cfg_srv_timeout"].asReal();
 		}
 
-        // If the SRV request times out (e.g. EXT-3934), simulate response: an
-        // array containing our original URI.
-        LLSD fakeResponse(LLSD::emptyArray());
-        fakeResponse.append(uri);
+		// If the SRV request times out (e.g. EXT-3934), simulate response: an
+		// array containing our original URI.
+		LLSD fakeResponse(LLSD::emptyArray());
+		fakeResponse.append(uri);
+
 		filter.eventAfter(seconds_to_timeout, fakeResponse);
 
 		std::string srv_pump_name = "LLAres";
@@ -180,13 +176,13 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD login_para
 		}
 
 		// Make request
-        LLSD request;
-        request["op"] = "rewriteURI";
-        request["uri"] = uri;
-        request["reply"] = replyPump.getName();
-        rewrittenURIs = postAndWait(self, request, srv_pump_name, filter);
-        // EXP-772: If rewrittenURIs fail, try original URI as a fallback.
-        rewrittenURIs.append(uri);
+		LLSD request;
+		request["op"] = "rewriteURI";
+		request["uri"] = uri;
+		request["reply"] = replyPump.getName();
+		rewrittenURIs = postAndWait(self, request, srv_pump_name, filter);
+		// EXP-772: If rewrittenURIs fail, try original URI as a fallback.
+		rewrittenURIs.append(uri);
     } // we no longer need the filter
 
     LLEventPump& xmlrpcPump(LLEventPumps::instance().obtain("LLXMLRPCTransaction"));
diff --git a/indra/viewer_components/updater/llupdaterservice.cpp b/indra/viewer_components/updater/llupdaterservice.cpp
index 1882e39a888f2f31a5140d7d7bf8d49d5255fd5f..7dd88fadb86783acc031ba68ee2401f017c1f76b 100755
--- a/indra/viewer_components/updater/llupdaterservice.cpp
+++ b/indra/viewer_components/updater/llupdaterservice.cpp
@@ -207,7 +207,6 @@ void LLUpdaterServiceImpl::initialize(const std::string&  url,
 	memcpy(mUniqueId, uniqueid, MD5HEX_STR_SIZE);
 	mWillingToTest = willing_to_test;
 
-#if BUG_2707
 	LL_DEBUGS("UpdaterService")
 		<< "\n  url: " << mUrl
 		<< "\n  path: " << mPath
@@ -216,7 +215,6 @@ void LLUpdaterServiceImpl::initialize(const std::string&  url,
 		<< "\n  uniqueid: " << mUniqueId
 		<< "\n  willing: " << ( mWillingToTest ? "testok" : "testno" )
 		<< LL_ENDL;
-#endif
 }
 
 void LLUpdaterServiceImpl::setCheckPeriod(unsigned int seconds)
@@ -435,14 +433,13 @@ void LLUpdaterServiceImpl::response(LLSD const & content)
 		LLURI url(content["url"].asString());
 		std::string more_info = content["more_info"].asString();
 
-		#if BUG_2707
 		LL_DEBUGS("UpdaterService")
 			<< "Starting download of "
 			<< ( required ? "required" : "optional" ) << " update"
 			<< " to channel '" << mNewChannel << "' version " << mNewVersion
 			<< " more info '" << more_info << "'"
 			<< LL_ENDL;
-		#endif
+
 		mUpdateDownloader.download(url, content["hash"].asString(), mNewChannel, mNewVersion, more_info, required);
 	}
 }
@@ -466,7 +463,6 @@ void LLUpdaterServiceImpl::downloadComplete(LLSD const & data)
 	payload["info_url"] = data["info_url"];
 	event["payload"] = payload;
 
-	#if BUG_2707
 	LL_DEBUGS("UpdaterService")
 		<< "Download complete "
 		<< ( data["required"].asBoolean() ? "required" : "optional" )
@@ -474,7 +470,6 @@ void LLUpdaterServiceImpl::downloadComplete(LLSD const & data)
 		<< " version " << mNewVersion
 		<< " info " << data["info_url"].asString()
 		<< LL_ENDL;
-	#endif
 
 	LLEventPumps::instance().obtain("mainlooprepeater").post(event);
 
@@ -551,8 +546,7 @@ bool LLUpdaterServiceImpl::onMainLoop(LLSD const & event)
 		// Check for failed install.
 		if(LLFile::isfile(ll_install_failed_marker_path()))
 		{
-			// BUG-2707?
-			//LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL;;
+			LL_DEBUGS("UpdaterService") << "found marker " << ll_install_failed_marker_path() << LL_ENDL;;
 			int requiredValue = 0; 
 			{
 				llifstream stream(ll_install_failed_marker_path());