diff --git a/src/Ryujinx/Assets/locales.json b/src/Ryujinx/Assets/locales.json
index cba9b2ce9..82e2b96cc 100644
--- a/src/Ryujinx/Assets/locales.json
+++ b/src/Ryujinx/Assets/locales.json
@@ -23898,4 +23898,4 @@
       }
     }
   ]
-}
+}
\ No newline at end of file
diff --git a/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml b/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
index 78fefc346..98416654b 100644
--- a/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
+++ b/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
@@ -283,10 +283,14 @@
         <StackPanel 
             Grid.Column="4"
             Margin="0,0,5,0"
-            IsVisible="{Binding EnableNonGameRunningControls}"
             Orientation="Horizontal">
+            <StackPanel.IsVisible>
+                <MultiBinding Converter="{x:Static BoolConverters.And}">
+                    <Binding Path="EnableNonGameRunningControls" />
+                    <Binding Path="UpdateAvailable" />
+                </MultiBinding>
+            </StackPanel.IsVisible>
             <Button Margin="0, 0, 5, 0"
-                    IsVisible="{Binding UpdateAvailable}"
                     Command="{Binding UpdateCommand}">
                 <TextBlock
                     Margin="-5"
@@ -294,7 +298,7 @@
                     VerticalAlignment="Center"
                     Text="{ext:Locale UpdaterBackgroundStatusBarButtonText}" />
             </Button>
-            <controls:MiniVerticalSeparator IsVisible="{Binding UpdateAvailable}" />
+            <controls:MiniVerticalSeparator Margin="5,0,0,0"/>
         </StackPanel>
         <StackPanel
             Grid.Column="5"
diff --git a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
index 2b6de9d75..3b7816a41 100644
--- a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
+++ b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
@@ -413,8 +413,7 @@ namespace Ryujinx.Ava.UI.Windows
                 case UpdaterType.CheckInBackground:
                     if ((await Updater.CheckVersionAsync()).TryGet(out (Version Current, Version Incoming) versions))
                     {
-                        if (versions.Current < versions.Incoming)
-                            Dispatcher.UIThread.Post(() => RyujinxApp.MainWindow.ViewModel.UpdateAvailable = true);
+                        Dispatcher.UIThread.Post(() => RyujinxApp.MainWindow.ViewModel.UpdateAvailable = versions.Current < versions.Incoming);
                     }
                     break;
             }
diff --git a/src/Ryujinx/Updater.cs b/src/Ryujinx/Updater.cs
index 56c4acea2..338e9de43 100644
--- a/src/Ryujinx/Updater.cs
+++ b/src/Ryujinx/Updater.cs
@@ -163,7 +163,7 @@ namespace Ryujinx.Ava
 
                 _running = false;
 
-                return (currentVersion, null);
+                return default;
             }
 
             return (currentVersion, newVersion);
@@ -178,7 +178,11 @@ namespace Ryujinx.Ava
 
             _running = true;
 
-            (Version currentVersion, Version newVersion) = (await CheckVersionAsync(showVersionUpToDate)).OrDefault();
+            Optional<(Version, Version)> versionTuple = await CheckVersionAsync(showVersionUpToDate);
+
+            if (_running is false || !versionTuple.HasValue) return;
+
+            (Version currentVersion, Version newVersion) = versionTuple.Value;
 
             if (newVersion <= currentVersion)
             {