diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index 645a77e42aa1a7f9252b4a688eae80e12681ff3e..54eeebda28f6ad59ecd1945e9cd693a0a496dcda 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -52,6 +52,8 @@
 #include "llviewerwindow.h"
 #include "lllineeditor.h"
 
+#include <boost/lexical_cast.hpp>
+
 const S32 CLIENT_RECT_VPAD = 4;
 
 const F32 SECONDS_TO_SHOW_FILE_SAVED_MSG = 8.f;
@@ -579,7 +581,11 @@ void LLPreviewTexture::adjustAspectRatio()
 			std::vector<std::string>::const_iterator found = std::find(mRatiosList.begin(), mRatiosList.end(), ratio.str());
 			if (found == mRatiosList.end())
 			{
-				combo->setCurrentByIndex(0);
+				// No existing ratio found, create an element that will show image at original ratio
+				std::string ratio = boost::lexical_cast<std::string>(num)+":" + boost::lexical_cast<std::string>(denom);
+				mRatiosList.push_back(ratio);
+				combo->add(ratio);
+				combo->setCurrentByIndex(mRatiosList.size()- 1);
 			}
 			else
 			{
@@ -587,6 +593,15 @@ void LLPreviewTexture::adjustAspectRatio()
 			}
 		}
 	}
+	else
+	{
+		// Aspect ratio was set to unconstrained or was clamped
+		LLComboBox* combo = getChild<LLComboBox>("combo_aspect_ratio");
+		if (combo)
+		{
+			combo->setCurrentByIndex(0); //unconstrained
+		}
+	}
 
 	mUpdateDimensions = TRUE;
 }