diff --git a/project/jni/application/xserver/AndroidAppSettings.cfg b/project/jni/application/xserver/AndroidAppSettings.cfg
index 44f91128f..bec654dcb 100644
--- a/project/jni/application/xserver/AndroidAppSettings.cfg
+++ b/project/jni/application/xserver/AndroidAppSettings.cfg
@@ -7,10 +7,10 @@ AppName="XServer XSDL"
AppFullName=x.org.server
# Application version code (integer)
-AppVersionCode=11136
+AppVersionCode=11137
# Application user-visible version name (string)
-AppVersionName="1.11.36"
+AppVersionName="1.11.37"
# Specify path to download application data in zip archive in the form 'Description|URL|MirrorURL^Description2|URL2|MirrorURL2^...'
# If you'll start Description with '!' symbol it will be enabled by default, other downloads should be selected by user from startup config menu
diff --git a/project/jni/application/xserver/java.patch b/project/jni/application/xserver/java.patch
index 8560bb177..daa0ffc83 100644
--- a/project/jni/application/xserver/java.patch
+++ b/project/jni/application/xserver/java.patch
@@ -1,21 +1,161 @@
-diff --git a/project/java/Video.java b/project/java/Video.java
-index eb25252..a327c6b 100644
---- a/project/java/Video.java
-+++ b/project/java/Video.java
-@@ -691,6 +691,16 @@ class DemoRenderer extends GLSurfaceView_SDL.Renderer
- if(Globals.AudioBufferConfig >= 2)
- Thread.currentThread().setPriority( (Thread.NORM_PRIORITY + Thread.MIN_PRIORITY) / 2 ); // Lower than normal
- // Calls main() and never returns, hehe - we'll call eglSwapBuffers() from native code
-+ if (context.getIntent().getScheme() != null && context.getIntent().getScheme().equals("x11"))
+--- /dev/null 2015-10-05 15:25:29.521608647 +0300
++++ RunFromOtherApp.java 2015-10-26 22:53:03.765597769 +0200
+@@ -0,0 +1,158 @@
++/*
++Simple DirectMedia Layer
++Java source code (C) 2009-2014 Sergii Pylypenko
++
++This software is provided 'as-is', without any express or implied
++warranty. In no event will the authors be held liable for any damages
++arising from the use of this software.
++
++Permission is granted to anyone to use this software for any purpose,
++including commercial applications, and to alter it and redistribute it
++freely, subject to the following restrictions:
++
++1. The origin of this software must not be misrepresented; you must not
++ claim that you wrote the original software. If you use this software
++ in a product, an acknowledgment in the product documentation would be
++ appreciated but is not required.
++2. Altered source versions must be plainly marked as such, and must not be
++ misrepresented as being the original software.
++3. This notice may not be removed or altered from any source distribution.
++*/
++
++package x.org.server;
++
++import android.app.Activity;
++import android.app.Service;
++import android.content.Context;
++import android.os.Bundle;
++import android.os.IBinder;
++import android.view.MotionEvent;
++import android.view.KeyEvent;
++import android.view.Window;
++import android.view.WindowManager;
++import android.view.View;
++import android.view.ViewGroup;
++import android.widget.TextView;
++import android.widget.EditText;
++import android.text.Editable;
++import android.widget.Button;
++import android.widget.ImageView;
++import android.widget.LinearLayout;
++import android.widget.FrameLayout;
++import android.graphics.drawable.Drawable;
++import android.graphics.Color;
++import android.content.res.Configuration;
++import android.app.Notification;
++import android.app.NotificationManager;
++import android.app.PendingIntent;
++import android.content.Intent;
++import android.view.View.OnKeyListener;
++import android.view.MenuItem;
++import android.view.Menu;
++import android.view.Gravity;
++import android.text.method.TextKeyListener;
++import java.util.LinkedList;
++import java.io.SequenceInputStream;
++import java.io.BufferedInputStream;
++import java.io.IOException;
++import java.io.InputStream;
++import java.io.OutputStream;
++import java.io.FileOutputStream;
++import java.io.File;
++import java.io.FileInputStream;
++import java.util.zip.*;
++import java.util.zip.ZipEntry;
++import java.util.zip.ZipInputStream;
++import java.util.Set;
++import android.text.SpannedString;
++import java.io.BufferedReader;
++import java.io.BufferedInputStream;
++import java.io.InputStreamReader;
++import android.view.inputmethod.InputMethodManager;
++import android.content.pm.PackageInfo;
++import android.content.pm.PackageManager;
++import android.os.Handler;
++import android.os.Message;
++import android.os.SystemClock;
++import java.util.concurrent.Semaphore;
++import android.content.pm.ActivityInfo;
++import android.view.Display;
++import android.util.DisplayMetrics;
++import android.text.InputType;
++import android.util.Log;
++import android.view.Surface;
++import android.app.ProgressDialog;
++import android.app.KeyguardManager;
++import android.view.ViewTreeObserver;
++import android.graphics.Rect;
++import android.net.Uri;
++import android.content.ComponentName;
++
++
++public class RunFromOtherApp extends Activity
++{
++ @Override
++ protected void onCreate(Bundle savedInstanceState)
++ {
++ super.onCreate(savedInstanceState);
++
++ Log.i("SDL", "Run from another app, getCallingActivity() is " +( getCallingActivity() == null ? "null" : "not null" ));
++
++ Intent main = new Intent(this, MainActivity.class);
++ main.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
++ if( getIntent().getScheme() != null && getIntent().getScheme().equals("x11") )
+ {
-+ int port = context.getIntent().getData().getPort();
++ int port = getIntent().getData().getPort();
+ if (port >= 0)
+ {
+ if (port >= 6000)
+ port -= 6000;
-+ Globals.CommandLine = Globals.CommandLine + " :" + port;
++ //Globals.CommandLine = Globals.CommandLine + " :" + port;
++ main.putExtra(RestartMainActivity.SDL_RESTART_PARAMS, ":" + port);
+ }
+ }
- nativeInit( Globals.DataDir,
- Globals.CommandLine,
- ( (Globals.SwVideoMode && Globals.MultiThreadedVideo) || Globals.CompatibilityHacksVideo ) ? 1 : 0,
++ startActivity(main);
++
++ new Thread(new Runnable()
++ {
++ public void run()
++ {
++ Log.i("SDL", "Waiting for env vars to be set");
++ while( System.getenv("DISPLAY") == null || System.getenv("PULSE_SERVER") == null )
++ {
++ try {
++ Thread.sleep(300);
++ } catch (InterruptedException e) {}
++ }
++ Log.i("SDL", "Env vars set, returning result, getCallingActivity() is " + (getCallingActivity() == null ? "null" : "not null"));
++
++ if( getCallingActivity() != null )
++ {
++ final ComponentName callingActivity = getCallingActivity().clone();
++ Log.i("SDL", "Launching calling activity: " + getCallingActivity().toString());
++ new Thread(new Runnable()
++ {
++ public void run()
++ {
++ try {
++ Thread.sleep(500);
++ } catch (InterruptedException e) {}
++ Intent caller = new Intent();
++ caller.setComponent(callingActivity);
++ caller.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
++ Log.i("SDL", "Launching calling activity: " + caller.toString());
++ startActivity(caller);
++ }
++ }).start();
++ }
++
++ Intent intent = new Intent(Intent.ACTION_RUN, Uri.parse("x11://run?DISPLAY=" + Uri.encode(System.getenv("DISPLAY")) + "&PULSE_SERVER=" + Uri.encode(System.getenv("PULSE_SERVER"))));
++ intent.putExtra("DISPLAY", System.getenv("DISPLAY"));
++ intent.putExtra("PULSE_SERVER", System.getenv("PULSE_SERVER"));
++ intent.putExtra("run", "export DISPLAY=" + System.getenv("DISPLAY") + " ; export PULSE_SERVER=" + System.getenv("PULSE_SERVER"));
++ setResult(Activity.RESULT_OK, intent);
++ finish();
++ }
++ }).start();
++ }
++}
diff --git a/project/jni/application/xserver/project.patch b/project/jni/application/xserver/project.patch
index 74673cb0d..baf96cee6 100644
--- a/project/jni/application/xserver/project.patch
+++ b/project/jni/application/xserver/project.patch
@@ -1,15 +1,20 @@
--- a/project/AndroidManifest.xml 2015-01-01 23:59:34.805231773 +0200
+++ a/project/AndroidManifest.xml 2015-01-01 23:59:45.189378809 +0200
-@@ -23,6 +23,12 @@
-
-
-
+@@ -43,6 +43,17 @@
+ android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize|layoutDirection"
+ android:enabled="true"
+ />
++
+
-+
-+
-+
++
++
+
+
-
-
-
+
+
+