diff --git a/indra/viewer_components/updater/llupdatedownloader.cpp b/indra/viewer_components/updater/llupdatedownloader.cpp
index 85261a3252a1e207a081b8a248c8218e8cb37795..e88d1bf811d726056cf63c03ccb5a1910f20b3a4 100644
--- a/indra/viewer_components/updater/llupdatedownloader.cpp
+++ b/indra/viewer_components/updater/llupdatedownloader.cpp
@@ -427,13 +427,9 @@ void LLUpdateDownloader::Implementation::initializeCurlGet(std::string const & u
 	throwOnCurlError(curl_easy_setopt(mCurl, CURLOPT_PROGRESSFUNCTION, &progress_callback));
 	throwOnCurlError(curl_easy_setopt(mCurl, CURLOPT_PROGRESSDATA, this));
 	throwOnCurlError(curl_easy_setopt(mCurl, CURLOPT_NOPROGRESS, false));
-#if LL_WINDOWS || LL_DARWIN   // temporary workaround for CHOP-286 (bandwidth limits freeze the downloader thread on linux)
-	if((mBandwidthLimit != 0) && !mDownloadData["required"].asBoolean()) {
-		throwOnCurlError(curl_easy_setopt(mCurl, CURLOPT_MAX_RECV_SPEED_LARGE, mBandwidthLimit));
-	} else {
-		throwOnCurlError(curl_easy_setopt(mCurl, CURLOPT_MAX_RECV_SPEED_LARGE, -1));
-	}
-#endif // LL_WINDOWS || LL_DARWIN
+	// if it's a required update set the bandwidth limit to 0 (unlimited)
+	curl_off_t limit = mDownloadData["required"].asBoolean() ? 0 : mBandwidthLimit;
+	throwOnCurlError(curl_easy_setopt(mCurl, CURLOPT_MAX_RECV_SPEED_LARGE, limit));
 	
 	mDownloadPercent = 0;
 }