diff --git a/indra/newview/llviewerwindowlistener.cpp b/indra/newview/llviewerwindowlistener.cpp
index ad90b1d2ab805244fca32dceb0a3a9dee21d956b..acff7ac8352a22765bfa283b610458c58608408e 100644
--- a/indra/newview/llviewerwindowlistener.cpp
+++ b/indra/newview/llviewerwindowlistener.cpp
@@ -35,6 +35,7 @@ LLViewerWindowListener::LLViewerWindowListener(const std::string& pumpname, LLVi
 //  saveSnapshotArgs["rebuild"] = LLSD::Boolean();
 //  saveSnapshotArgs["type"] = LLSD::String();
     add("saveSnapshot", &LLViewerWindowListener::saveSnapshot, saveSnapshotArgs);
+    add("requestReshape", &LLViewerWindowListener::requestReshape);
 }
 
 void LLViewerWindowListener::saveSnapshot(const LLSD& event) const
@@ -76,3 +77,11 @@ void LLViewerWindowListener::saveSnapshot(const LLSD& event) const
     response["ok"] = ok;
     LLEventPumps::instance().obtain(event["reply"]).post(response);
 }
+
+void LLViewerWindowListener::requestReshape(LLSD const & event_data) const
+{
+	if(event_data.has("w") && event_data.has("h"))
+	{
+		mViewerWindow->reshape(event_data["w"].asInteger(), event_data["h"].asInteger());
+	}
+}
\ No newline at end of file
diff --git a/indra/newview/llviewerwindowlistener.h b/indra/newview/llviewerwindowlistener.h
index f756a5310f2931db9e72c5bfae4c9b4e169c0559..59c636ecec85b5b683019d3d7475b45dbe7673d4 100644
--- a/indra/newview/llviewerwindowlistener.h
+++ b/indra/newview/llviewerwindowlistener.h
@@ -27,6 +27,7 @@ class LLViewerWindowListener: public LLDispatchListener
 
 private:
     void saveSnapshot(const LLSD& event) const;
+    void requestReshape(LLSD const & event_data) const;
 
     LLViewerWindow* mViewerWindow;
 };