diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp
index 5afc266cfb60dcda14997c53c52d7adec8d27618..44b560ab6e835019d2cd40ead57b7dd99c753957 100755
--- a/indra/llmessage/llavatarnamecache.cpp
+++ b/indra/llmessage/llavatarnamecache.cpp
@@ -789,8 +789,11 @@ bool max_age_from_cache_control(const std::string& cache_control, S32 *max_age)
 			try
 			{
 				S32 val = boost::lexical_cast<S32>(subtoken);
-				*max_age = val;
-				return true;
+				if (val >= 0 && val < S32_MAX)
+				{
+					*max_age = val;
+					return true;
+				}
 			}
 			catch (const boost::bad_lexical_cast&)
 			{