diff --git a/README.md b/README.md
index 1b7e6a38..05414c6c 100644
--- a/README.md
+++ b/README.md
@@ -274,6 +274,7 @@ the Wine prefix. Removing the option will revert to the previous behavior.
| nod3d10 | PROTON_NO_D3D10 | Disable d3d10.dll and dxgi.dll, for d3d10 games which can fall back to and run better with d3d9. |
| noesync | PROTON_NO_ESYNC | Do not use eventfd-based in-process synchronization primitives. |
| nofsync | PROTON_NO_FSYNC | Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no `FUTEX_WAIT_MULTIPLE` support.) |
+| noxim | PROTON_NO_XIM | Enabled by default. Do not attempt to use XIM (X Input Methods) support. XIM support is known to cause crashes with libx11 older than version 1.7. |
| nativevulkanloader | | Use the Vulkan loader shipped with the game instead of Proton's built-in Vulkan loader. This breaks VR support, but is required by a few games. |
| forcelgadd | PROTON_FORCE_LARGE_ADDRESS_AWARE | Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. |
| gamedrive | PROTON_SET_GAME_DRIVE | Create an S: drive which points to the Steam Library which contains the game. |
diff --git a/proton b/proton
index 95a18d49..67f7ac72 100755
--- a/proton
+++ b/proton
@@ -712,6 +712,9 @@ class Session:
#default wine-mono override for FNA games
self.env.setdefault("WINE_MONO_OVERRIDES", "Microsoft.Xna.Framework.*,Gac=n")
+ #disable XIM support until libx11 >= 1.7 is widespread
+ self.env.setdefault("WINE_ALLOW_XIM", "0")
+
if "wined3d11" in self.compat_config:
self.compat_config.add("wined3d")
@@ -726,12 +729,16 @@ class Session:
self.check_environment("PROTON_NO_WRITE_WATCH", "nowritewatch")
self.check_environment("PROTON_HIDE_NVIDIA_GPU", "hidenvgpu")
self.check_environment("PROTON_SET_GAME_DRIVE", "gamedrive")
+ self.check_environment("PROTON_NO_XIM", "noxim")
if "noesync" in self.compat_config:
self.env.pop("WINEESYNC", "")
else:
self.env["WINEESYNC"] = "1"
+ if not "noxim" in self.compat_config:
+ self.env.pop("WINE_ALLOW_XIM")
+
if "nofsync" in self.compat_config:
self.env.pop("WINEFSYNC", "")
else: