diff --git a/autobuild.xml b/autobuild.xml
index 28973dbe54b06149d1ca4d8c3e09c4441db5f063..3a614de45e9d2774bab06c4f3f9f87e4ce50e820 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1536,11 +1536,11 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>594967d448010267ca5023e2dc9ee934</string>
+              <string>f222975b084f8ef74b91fcca0c3ef922</string>
               <key>hash_algorithm</key>
               <string>md5</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/306495/arch/Darwin/installer/llceflib-1.2.0.306495-darwin-306495.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/307407/arch/Darwin/installer/llceflib-1.3.1.307407-darwin-307407.tar.bz2</string>
             </map>
             <key>name</key>
             <string>darwin</string>
@@ -1550,18 +1550,18 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>010aef659d02dbba158ebd869a8e71b4</string>
+              <string>f7a3525643066a80fa085d52844e7466</string>
               <key>hash_algorithm</key>
               <string>md5</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/306495/arch/CYGWIN/installer/llceflib-1.2.0.306495-windows-306495.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llceflib_3p-llceflib/rev/307407/arch/CYGWIN/installer/llceflib-1.3.1.307407-windows-307407.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
           </map>
         </map>
         <key>version</key>
-        <string>1.2.0.306495</string>
+        <string>1.3.1.307407</string>
       </map>
       <key>llphysicsextensions_source</key>
       <map>
diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp
index d653aaace9d49c0bf72cec72423bd2297017d27c..75e1055d2d381da86410a9ccf487f8a7f463c599 100644
--- a/indra/media_plugins/cef/media_plugin_cef.cpp
+++ b/indra/media_plugins/cef/media_plugin_cef.cpp
@@ -128,7 +128,7 @@ MediaPluginBase(host_send_func, host_user_data)
 //
 MediaPluginCEF::~MediaPluginCEF()
 {
-	mLLCEFLib->reset();
+	mLLCEFLib->requestExit();
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -532,11 +532,12 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
 			}
 			else if (message_name == "scroll_event")
 			{
+				S32 x = message_in.getValueS32("y");
 				S32 y = message_in.getValueS32("y");
 				const int scaling_factor = 40;
 				y *= -scaling_factor;
 
-				mLLCEFLib->mouseWheel(y);
+				mLLCEFLib->mouseWheel(x, y);
 			}
 			else if (message_name == "text_event")
 			{
@@ -576,9 +577,9 @@ void MediaPluginCEF::receiveMessage(const char* message_string)
                 {
                     key_event = LLCEFLib::KE_KEY_REPEAT;
                 }
-                
+
                 keyEvent(key_event, key, LLCEFLib::KM_MODIFIER_NONE, native_key_data);
-              
+
 #endif
 #elif LL_WINDOWS
 				std::string event = message_in.getValue("event");
@@ -730,15 +731,15 @@ void MediaPluginCEF::keyEvent(LLCEFLib::EKeyEvent key_event, int key, LLCEFLib::
     uint32_t native_virtual_key = native_key_data["key_code"].asInteger();
     uint32_t native_modifiers = native_key_data["modifiers"].asInteger();
 
-    
-    
+
+
 	if (key < 128)
 	{
 		utf8_text = (char)native_virtual_key;
 	}
-    
+
 	switch ((KEY)key)
-    
+
 	{
 		case KEY_BACKSPACE:		utf8_text = (char)8;		break;
 		case KEY_TAB:			utf8_text = (char)9;		break;
@@ -750,12 +751,16 @@ void MediaPluginCEF::keyEvent(LLCEFLib::EKeyEvent key_event, int key, LLCEFLib::
 		break;
 	}
 
-	mLLCEFLib->keyboardEvent(key_event, native_char_code, utf8_text.c_str(), native_modifiers, native_scan_code, native_virtual_key, native_modifiers);
+	mLLCEFLib->keyboardEvent(key_event, native_char_code,
+							  utf8_text.c_str(), modifiers,
+							  native_scan_code, native_virtual_key,
+							  native_modifiers);
+
 #elif LL_WINDOWS
 	U32 msg = ll_U32_from_sd(native_key_data["msg"]);
 	U32 wparam = ll_U32_from_sd(native_key_data["w_param"]);
 	U64 lparam = ll_U32_from_sd(native_key_data["l_param"]);
-    
+
 	mLLCEFLib->nativeKeyboardEvent(msg, wparam, lparam);
 #endif
 };