diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index e9f8ba020e674c5bfcca6ec74f3b8f5ad64d868e..52190a1473075551889137246b77aba583448583 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -236,14 +236,14 @@ void LLUI::dirtyRect(LLRect rect)
 //static 
 void LLUI::setMousePositionScreen(S32 x, S32 y)
 {
-	S32 screen_x, screen_y;
 #if defined(LL_DARWIN)
-    screen_x = ll_round((F32)x);
-    screen_y = ll_round((F32)y);
+    S32 screen_x = ll_round(((F32)x * getScaleFactor().mV[VX]) / LLView::getWindow()->getSystemUISize());
+    S32 screen_y = ll_round(((F32)y * getScaleFactor().mV[VY]) / LLView::getWindow()->getSystemUISize());
 #else
-	screen_x = ll_round((F32)x * getScaleFactor().mV[VX]);
-	screen_y = ll_round((F32)y * getScaleFactor().mV[VY]);
+    S32 screen_x = ll_round((F32)x * getScaleFactor().mV[VX]);
+    S32 screen_y = ll_round((F32)y * getScaleFactor().mV[VY]);
 #endif
+	
 	LLView::getWindow()->setCursorPosition(LLCoordGL(screen_x, screen_y).convert());
 }
 
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 93d1dacf1fa01f829ddbe1204e87412bd5870acc..699b392a24950f4c57519269e2d715865886060f 100644
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -883,14 +883,8 @@ void LLWorldMapView::drawFrustum()
 	F32 half_width_pixels = half_width_meters * meters_to_pixels;
 	
 	// Compute the frustum coordinates. Take the UI scale into account.
-#if defined(LL_DARWIN)
-    F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor");
-    F32 ctr_x = ((getLocalRect().getWidth() * 0.5f + sPanX)  * ui_scale_factor) * LLUI::getScaleFactor().mV[VX];
-    F32 ctr_y = ((getLocalRect().getHeight() * 0.5f + sPanY) * ui_scale_factor) * LLUI::getScaleFactor().mV[VY];
-#else
     F32 ctr_x = ((getLocalRect().getWidth() * 0.5f + sPanX)  * LLUI::getScaleFactor().mV[VX]);
     F32 ctr_y = ((getLocalRect().getHeight() * 0.5f + sPanY) * LLUI::getScaleFactor().mV[VY]);
-#endif
 
 	gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);