diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index c2a39f21fcf4a38cab6c2e6fd0e6dfe64ba517cc..0f4bfc9e194d728fccda67999cfa8d541f751881 100755
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -357,8 +357,8 @@ void LLWorldMapView::draw()
 		// When the view isn't panned, 0,0 = center of rectangle
 		F32 bottom =    sPanY + half_height + relative_y;
 		F32 left =      sPanX + half_width + relative_x;
-		F32 top =       bottom + sMapScale ;
-		F32 right =     left + sMapScale ;
+		F32 top =		bottom+ (sMapScale * (info->getSizeY() / REGION_WIDTH_METERS));
+		F32 right =		left  + (sMapScale * (info->getSizeX() / REGION_WIDTH_METERS));
 
 		// Discard if region is outside the screen rectangle (not visible on screen)
 		if ((top < 0.f)   || (bottom > height) ||
@@ -419,8 +419,12 @@ void LLWorldMapView::draw()
 			if (overlayimage)
 			{
 				// Inform the fetch mechanism of the size we need
-				S32 draw_size = ll_round(sMapScale);
-				overlayimage->setKnownDrawSize(ll_round(draw_size * LLUI::getScaleFactor().mV[VX]), ll_round(draw_size * LLUI::getScaleFactor().mV[VY]));
+				S32 x_draw_size = ll_round(sMapScale);
+				S32 y_draw_size = ll_round(sMapScale);
+				x_draw_size *= (info->getSizeX() / REGION_WIDTH_METERS);
+				y_draw_size *= (info->getSizeY() / REGION_WIDTH_METERS);
+
+				overlayimage->setKnownDrawSize(ll_round(x_draw_size * LLUI::getScaleFactor().mV[VX]), ll_round(y_draw_size * LLUI::getScaleFactor().mV[VY]));
 				// Draw something whenever we have enough info
 				if (overlayimage->hasGLTexture())
 				{
diff --git a/scripts/messages/message_template.msg b/scripts/messages/message_template.msg
index fbbc385e5baf99f3769466e3d3b225866d46b990..4b46143ef7f72239ece6e8b891fa5f6116b8cae5 100755
--- a/scripts/messages/message_template.msg
+++ b/scripts/messages/message_template.msg
@@ -8715,6 +8715,11 @@ version 2.0
 		{	Agents		U8				}
 		{	MapImageID	LLUUID			}
 	}
+	{	
+		Size			Variable
+		{	SizeX		U16				}
+		{	SizeY		U16				}
+	}
 }
 
 // viewer -> sim
diff --git a/scripts/messages/message_template.msg.sha1 b/scripts/messages/message_template.msg.sha1
index 2c6489906c6db692017be9c5aa9bcde99ad9770c..c533cf89a8de90dab1a37662733c25a9d4331df7 100755
--- a/scripts/messages/message_template.msg.sha1
+++ b/scripts/messages/message_template.msg.sha1
@@ -1 +1 @@
-845459c1bb7fe8174fb493528fe2a214015f996d
\ No newline at end of file
+326aaa0f3f77faaa62aac6675f2c9c17f5d14116
\ No newline at end of file