diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h
index 0aa1fbe90572aaf143bb54a473b4a5e56efd90dd..0a30f4c807fefa91ca85edf89ab2bfc455584aec 100755
--- a/indra/llwindow/llwindow.h
+++ b/indra/llwindow/llwindow.h
@@ -122,7 +122,6 @@ class LLWindow : public LLInstanceTracker<LLWindow>
 	virtual void gatherInput() = 0;
 	virtual void delayInputProcessing() = 0;
 	virtual void swapBuffers() = 0;
-	virtual void restoreGLContext() = 0;
 	virtual void bringToFront() = 0;
 	virtual void focusClient() { };		// this may not have meaning or be required on other platforms, therefore, it's not abstract
 	virtual void setOldResize(bool oldresize) { };
diff --git a/indra/llwindow/llwindowheadless.cpp b/indra/llwindow/llwindowheadless.cpp
index b6f67c6107768edf3ebda844f0af90453a1a8bc9..70f473281b6170f1c16ebb0bdbd66874952be003 100755
--- a/indra/llwindow/llwindowheadless.cpp
+++ b/indra/llwindow/llwindowheadless.cpp
@@ -51,7 +51,3 @@ LLWindowHeadless::~LLWindowHeadless()
 void LLWindowHeadless::swapBuffers()
 {
 }
-
-void LLWindowHeadless::restoreGLContext()
-{
-}
diff --git a/indra/llwindow/llwindowheadless.h b/indra/llwindow/llwindowheadless.h
index 5975ee3410709958ba5b3b0f8edb8aad97acdb21..c692666df140d2203d35c2f2fe8c38b028efda79 100755
--- a/indra/llwindow/llwindowheadless.h
+++ b/indra/llwindow/llwindowheadless.h
@@ -74,7 +74,6 @@ class LLWindowHeadless : public LLWindow
 	/*virtual*/ void gatherInput() {};
 	/*virtual*/ void delayInputProcessing() {};
 	/*virtual*/ void swapBuffers();
-	/*virtual*/ void restoreGLContext();
 
 	
     // handy coordinate space conversion routines
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 1f577b117e00cc78fd5307ac736a24e86ddaeb3c..fc1ea06d104b3f1514fe7f32c7a0f2af71ecf559 100755
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -1163,6 +1163,8 @@ void LLWindowMacOSX::beforeDialog()
 
 void LLWindowMacOSX::afterDialog()
 {
+    //For fix problem with Core Flow view on OSX
+    restoreGLContext();
 }
 
 
diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h
index 194c9bb27a93835d90ab0bf460a69b1ee1d03db8..9e9bd8ae394c2012254a12b104984a15e15a4e41 100755
--- a/indra/llwindow/llwindowmacosx.h
+++ b/indra/llwindow/llwindowmacosx.h
@@ -87,9 +87,7 @@ class LLWindowMacOSX : public LLWindow
 	/*virtual*/ void gatherInput();
 	/*virtual*/ void delayInputProcessing() {};
 	/*virtual*/ void swapBuffers();
-	/*virtual*/ void restoreGLContext();
-
-
+	
 	// handy coordinate space conversion routines
 	/*virtual*/ BOOL convertCoords(LLCoordScreen from, LLCoordWindow *to);
 	/*virtual*/ BOOL convertCoords(LLCoordWindow from, LLCoordScreen *to);
@@ -157,7 +155,9 @@ class LLWindowMacOSX : public LLWindow
     
     //Satisfy MAINT-3135 and MAINT-3288 with a flag.
     /*virtual */ void setOldResize(bool oldresize) {setResizeMode(oldresize, mGLView); }
- 
+
+private:
+    void restoreGLContext();
 
 protected:
 	//
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp
index 4a89fc92b420eb47115f855014cf16037d8fe245..619140e922a389103d01e92b6c826d61ffd72c0e 100755
--- a/indra/newview/lllocalbitmaps.cpp
+++ b/indra/newview/lllocalbitmaps.cpp
@@ -844,9 +844,6 @@ bool LLLocalBitmapMgr::addUnit()
 	LLFilePicker& picker = LLFilePicker::instance();
 	if (picker.getMultipleOpenFiles(LLFilePicker::FFLOAD_IMAGE))
 	{
-		//For fix problem with Core Flow view on OSX
-        restoreGLContext();
-        
 		sTimer.stopTimer();
 
 		std::string filename = picker.getFirstFile();
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 9ef911616e16b719ea61831f59332ac538a66d63..ea9463da049437d4e45ed6861f9c5ec1b822b020 100755
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -1344,14 +1344,6 @@ void swap()
 	gDisplaySwapBuffers = TRUE;
 }
 
-void restoreGLContext()
-{
-	if(gViewerWindow && gViewerWindow->getWindow()) 
-	{
-		gViewerWindow->getWindow()->restoreGLContext();
-	}
-}
-
 void renderCoordinateAxes()
 {
 	gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
diff --git a/indra/newview/llviewerdisplay.h b/indra/newview/llviewerdisplay.h
index dcc78fe42f03a513b4a9ab6269ae9fb9b8552893..f6467d7f93c4a65bdd0cb385732fcb87f34060a6 100755
--- a/indra/newview/llviewerdisplay.h
+++ b/indra/newview/llviewerdisplay.h
@@ -34,8 +34,6 @@ void display_cleanup();
 
 void display(BOOL rebuild = TRUE, F32 zoom_factor = 1.f, int subfield = 0, BOOL for_snapshot = FALSE);
 
-void restoreGLContext();
-
 extern BOOL gDisplaySwapBuffers;
 extern BOOL gDepthDirty;
 extern BOOL	gTeleportDisplay;