diff --git a/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp b/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp
index ca5f4b5fb5ff..a436a624d5b7 100644
--- a/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp
+++ b/Engine/Source/Runtime/ApplicationCore/Private/Linux/LinuxPlatformApplicationMisc.cpp
@@ -299,6 +299,9 @@ bool FLinuxPlatformApplicationMisc::InitSDL()
 		SDL_SetHint(SDL_HINT_MOUSE_RELATIVE_MODE_SHOW_CURSOR, "1"); // When relative mouse mode is acive, don't hide cursor.
 		SDL_SetHint(SDL_HINT_MOUSE_RELATIVE_MODE_WARP, "0"); // Don't warp the cursor to the center in relative mouse mode.
 
+		// Unreal does its own dynamic capturing, we don't need SDL to do it.
+		SDL_SetHint(SDL_HINT_MOUSE_AUTO_CAPTURE, "0");
+
 		// If we're rendering offscreen, use the "dummy" SDL video driver
 		if (FParse::Param(FCommandLine::Get(), TEXT("RenderOffScreen")) && !getenv("SDL_VIDEODRIVER"))
 		{
diff --git a/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp b/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp
index 1677269adb69..dae6bcde6c25 100644
--- a/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp
+++ b/Engine/Source/Runtime/Core/Private/Logging/LogMacros.cpp
@@ -10,6 +10,13 @@
 #include "Stats/Stats.h"
 #include "ProfilingDebugging/CsvProfiler.h"
 
+namespace UBreakPoint {
+	volatile int OnLogError_V;
+	FORCENOINLINE static void OnLogError() {
+		OnLogError_V = 0;
+	}
+}
+
 void StaticFailDebugV(const TCHAR* Error, const ANSICHAR* Expression, const ANSICHAR* File, int32 Line, bool bIsEnsure, void* ProgramCounter, const TCHAR* DescriptionFormat, va_list DescriptionArgs);
 
 CSV_DEFINE_CATEGORY(FMsgLogf, true);
@@ -35,6 +42,9 @@ void FMsg::LogfImpl(const ANSICHAR* File, int32 Line, const FLogCategoryName& Ca
 		}
 		GROWABLE_LOGF(LogOverride	? LogOverride->Log(Category, Verbosity, Buffer)
 									: GLog->RedirectLog(Category, Verbosity, Buffer))
+		if (Verbosity == ELogVerbosity::Error) {
+			UBreakPoint::OnLogError();
+		}
 	}
 	else
 	{
@@ -79,6 +89,9 @@ void FMsg::LogV(const ANSICHAR* File, int32 Line, const FLogCategoryName& Catego
 		{
 			(OutputDevice ? OutputDevice : GLog)->Serialize(Message, Verbosity, Category);
 		});
+		if (Verbosity == ELogVerbosity::Error) {
+			UBreakPoint::OnLogError();
+		}
 	}
 	else
 	{
