diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 7cf27d9141599b566915a72715fd2fff55b8f633..24cdcadb7c8ce48be2de6f5e93d8abf20239a6ab 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -1157,6 +1157,7 @@ LLPanelClassifiedInfo::LLPanelClassifiedInfo()
  , mScrollContainer(NULL)
  , mScrollingPanelMinHeight(0)
  , mScrollingPanelWidth(0)
+ , mSnapshotStreched(false)
 {
 }
 
@@ -1184,6 +1185,8 @@ BOOL LLPanelClassifiedInfo::postBuild()
 	mScrollingPanelMinHeight = mScrollContainer->getScrolledViewRect().getHeight();
 	mScrollingPanelWidth = mScrollingPanel->getRect().getWidth();
 
+	mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect();
+
 	return TRUE;
 }
 
@@ -1215,6 +1218,8 @@ void LLPanelClassifiedInfo::reshape(S32 width, S32 height, BOOL called_from_pare
 	{
 		mScrollingPanel->reshape(mScrollingPanelWidth + scrollbar_size, scroll_height);
 	}
+
+	mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect();
 }
 
 void LLPanelClassifiedInfo::onOpen(const LLSD& key)
@@ -1325,6 +1330,21 @@ void LLPanelClassifiedInfo::setClassifiedLocation(const std::string& location)
 void LLPanelClassifiedInfo::setSnapshotId(const LLUUID& id)
 {
 	childSetValue("classified_snapshot", id);
+	if(!mSnapshotStreched)
+	{
+		LLUICtrl* snapshot = getChild<LLUICtrl>("classified_snapshot");
+		snapshot->setRect(mSnapshotRect);
+	}
+	mSnapshotStreched = false;
+}
+
+void LLPanelClassifiedInfo::draw()
+{
+	LLPanel::draw();
+
+	// Stretch in draw because it takes some time to load a texture,
+	// going to try to stretch snapshot until texture is loaded
+	stretchSnapshot();
 }
 
 LLUUID LLPanelClassifiedInfo::getSnapshotId()
@@ -1363,6 +1383,41 @@ std::string LLPanelClassifiedInfo::createLocationText(
 	return location_text;
 }
 
+void LLPanelClassifiedInfo::stretchSnapshot()
+{
+	// *NOTE dzaporozhan
+	// Could be moved to LLTextureCtrl
+
+	LLTextureCtrl* texture_ctrl = getChild<LLTextureCtrl>("classified_snapshot");
+	LLViewerFetchedTexture* texture = texture_ctrl->getTexture();
+
+	if(!texture || mSnapshotStreched)
+	{
+		return;
+	}
+
+	if(0 == texture->getOriginalWidth() || 0 == texture->getOriginalHeight())
+	{
+		// looks like texture is not loaded yet
+		llinfos << "Missing image size" << llendl;
+		return;
+	}
+
+	LLRect rc = mSnapshotRect;
+	F32 t_width = texture->getFullWidth();
+	F32 t_height = texture->getFullHeight();
+
+	F32 ratio = llmin<F32>( (rc.getWidth() / t_width), (rc.getHeight() / t_height) );
+
+	t_width *= ratio;
+	t_height *= ratio;
+
+	rc.setCenterAndSize(rc.getCenterX(), rc.getCenterY(), t_width, t_height);
+	texture_ctrl->setRect(rc);
+
+	mSnapshotStreched = true;
+}
+
 void LLPanelClassifiedInfo::onMapClick()
 {
 	LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal());
diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h
index 9e33e55b8894cdce15db191e3e11ea7fc3630876..1942eb5365667ff7a01e34a0216bc9ef27112fa0 100644
--- a/indra/newview/llpanelclassified.h
+++ b/indra/newview/llpanelclassified.h
@@ -256,6 +256,8 @@ class LLPanelClassifiedInfo : public LLPanel, public LLAvatarPropertiesObserver
 
 	/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
 
+	/*virtual*/ void draw();
+
 protected:
 
 	LLPanelClassifiedInfo();
@@ -269,6 +271,8 @@ class LLPanelClassifiedInfo : public LLPanel, public LLAvatarPropertiesObserver
 		const std::string& sim_name, 
 		const LLVector3d& pos_global);
 
+	void stretchSnapshot();
+
 	void onMapClick();
 	void onTeleportClick();
 	void onExit();
@@ -281,6 +285,9 @@ class LLPanelClassifiedInfo : public LLPanel, public LLAvatarPropertiesObserver
 	LLUUID mParcelId;
 	bool mInfoLoaded;
 
+	bool mSnapshotStreched;
+	LLRect mSnapshotRect;
+
 	LLScrollContainer*		mScrollContainer;
 	LLPanel*				mScrollingPanel;
 
diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h
index 8ca92c3d874f6423cc3f85edead2263092cfbd6a..837f837430155f6a772b3135b279ddd57ec133f0 100644
--- a/indra/newview/lltexturectrl.h
+++ b/indra/newview/lltexturectrl.h
@@ -183,6 +183,8 @@ class LLTextureCtrl
 
 	void setShowLoadingPlaceholder(BOOL showLoadingPlaceholder);
 
+	LLViewerFetchedTexture* getTexture() { return mTexturep; }
+
 private:
 	BOOL allowDrop(LLInventoryItem* item);
 	BOOL doDrop(LLInventoryItem* item);