diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp
index ad765b641531c6122c5ed1f523f5c9641534442d..04085eb7038be2b4998be79162082c54bba0cf00 100644
--- a/indra/llimage/llimage.cpp
+++ b/indra/llimage/llimage.cpp
@@ -1535,7 +1535,7 @@ LLPointer<LLImageRaw> LLImageRaw::scaled(S32 new_width, S32 new_height)
     if ((old_width == new_width) && (old_height == new_height))
     {
         result = new LLImageRaw(old_width, old_height, components);
-        if (!result)
+        if (!result || result->isBufferInvalid())
         {
             LL_WARNS() << "Failed to allocate new image" << LL_ENDL;
             return result;
@@ -1549,7 +1549,7 @@ LLPointer<LLImageRaw> LLImageRaw::scaled(S32 new_width, S32 new_height)
         if (new_data_size > 0)
         {
             result = new LLImageRaw(new_width, new_height, components);
-            if (!result)
+            if (!result || result->isBufferInvalid())
             {
                 LL_WARNS() << "Failed to allocate new image" << LL_ENDL;
                 return result;