diff --git a/Ryujinx/Ui/DlcWindow.cs b/Ryujinx/Ui/DlcWindow.cs
index b9b770c0cf..29e96b07fb 100644
--- a/Ryujinx/Ui/DlcWindow.cs
+++ b/Ryujinx/Ui/DlcWindow.cs
@@ -195,6 +195,26 @@ namespace Ryujinx.Ui
                 }
             }
         }
+        
+        private void RemoveAllButton_Clicked(object sender, EventArgs args)
+        {
+            List<TreeIter> toRemove = new List<TreeIter>();
+
+            if (_dlcTreeView.Model.GetIterFirst(out TreeIter iter))
+            {
+                do
+                {
+                    toRemove.Add(iter);
+                } 
+                while (_dlcTreeView.Model.IterNext(ref iter));
+            }
+
+            foreach (TreeIter i in toRemove)
+            {
+                TreeIter j = i;
+                ((TreeStore)_dlcTreeView.Model).Remove(ref j);
+            }
+        }
 
         private void SaveButton_Clicked(object sender, EventArgs args)
         {
diff --git a/Ryujinx/Ui/DlcWindow.glade b/Ryujinx/Ui/DlcWindow.glade
index 08d7ca0acb..cd0d86744d 100644
--- a/Ryujinx/Ui/DlcWindow.glade
+++ b/Ryujinx/Ui/DlcWindow.glade
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.36.0 -->
 <interface>
   <requires lib="gtk+" version="3.20"/>
   <object class="GtkWindow" id="_dlcWindow">
@@ -9,9 +9,6 @@
     <property name="window_position">center</property>
     <property name="default_width">550</property>
     <property name="default_height">350</property>
-    <child>
-      <placeholder/>
-    </child>
     <child>
       <object class="GtkBox" id="MainBox">
         <property name="visible">True</property>
@@ -118,6 +115,22 @@
                     <property name="position">1</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkButton" id="_removeAllButton">
+                    <property name="label" translatable="yes">Remove All</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="tooltip_text" translatable="yes">Removes the selected update</property>
+                    <property name="margin_left">10</property>
+                    <signal name="clicked" handler="RemoveAllButton_Clicked" swapped="no"/>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
               </object>
               <packing>
                 <property name="expand">True</property>
@@ -182,5 +195,8 @@
         </child>
       </object>
     </child>
+    <child type="titlebar">
+      <placeholder/>
+    </child>
   </object>
 </interface>
diff --git a/Ryujinx/Ui/TitleUpdateWindow.cs b/Ryujinx/Ui/TitleUpdateWindow.cs
index c3345271a7..54b5b2620a 100644
--- a/Ryujinx/Ui/TitleUpdateWindow.cs
+++ b/Ryujinx/Ui/TitleUpdateWindow.cs
@@ -13,6 +13,7 @@ using Ryujinx.HLE.HOS;
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Linq;
 using System.Text;
 
 using GUI        = Gtk.Builder.ObjectAttribute;
@@ -60,19 +61,16 @@ namespace Ryujinx.Ui
             }
 
             _baseTitleInfoLabel.Text = $"Updates Available for {titleName} [{titleId.ToUpper()}]";
+            _noUpdateRadioButton.Active = true;
 
             foreach (string path in _titleUpdateWindowData.Paths)
             {
                 AddUpdate(path, false);
             }
 
-            _noUpdateRadioButton.Active = true;
-            foreach (KeyValuePair<RadioButton, string> keyValuePair in _radioButtonToPathDictionary)
+            foreach ((RadioButton update, var _) in _radioButtonToPathDictionary.Where(keyValuePair => keyValuePair.Value == _titleUpdateWindowData.Selected))
             {
-                if (keyValuePair.Value == _titleUpdateWindowData.Selected)
-                {
-                    keyValuePair.Key.Active = true;
-                }
+                update.Active = true;
             }
         }
 
@@ -131,6 +129,19 @@ namespace Ryujinx.Ui
             }
         }
 
+        private void RemoveUpdates(bool removeSelectedOnly = false)
+        {
+            foreach (RadioButton radioButton in _noUpdateRadioButton.Group)
+            {
+                if (radioButton.Label != "No Update" && (!removeSelectedOnly || radioButton.Active))
+                {
+                    _availableUpdatesBox.Remove(radioButton);
+                    _radioButtonToPathDictionary.Remove(radioButton);
+                    radioButton.Dispose();
+                }
+            }
+        }
+
         private void AddButton_Clicked(object sender, EventArgs args)
         {
             FileChooserDialog fileChooser = new FileChooserDialog("Select update files", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Add", ResponseType.Accept)
@@ -154,20 +165,19 @@ namespace Ryujinx.Ui
 
         private void RemoveButton_Clicked(object sender, EventArgs args)
         {
-            foreach (RadioButton radioButton in _noUpdateRadioButton.Group)
-            {
-                if (radioButton.Label != "No Update" && radioButton.Active)
-                {
-                    _availableUpdatesBox.Remove(radioButton);
-                    _radioButtonToPathDictionary.Remove(radioButton);
-                    radioButton.Dispose();
-                }
-            }
+            RemoveUpdates(true);
+        }
+
+        private void RemoveAllButton_Clicked(object sender, EventArgs args)
+        {
+            RemoveUpdates();
         }
 
         private void SaveButton_Clicked(object sender, EventArgs args)
         {
             _titleUpdateWindowData.Paths.Clear();
+            _titleUpdateWindowData.Selected = "";
+
             foreach (string paths in _radioButtonToPathDictionary.Values)
             {
                 _titleUpdateWindowData.Paths.Add(paths);
diff --git a/Ryujinx/Ui/TitleUpdateWindow.glade b/Ryujinx/Ui/TitleUpdateWindow.glade
index 081dc3eaa4..de557471a0 100644
--- a/Ryujinx/Ui/TitleUpdateWindow.glade
+++ b/Ryujinx/Ui/TitleUpdateWindow.glade
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.36.0 -->
 <interface>
   <requires lib="gtk+" version="3.20"/>
   <object class="GtkWindow" id="_titleUpdateWindow">
@@ -7,11 +7,8 @@
     <property name="title" translatable="yes">Ryujinx - Title Update Manager</property>
     <property name="modal">True</property>
     <property name="window_position">center</property>
-    <property name="default_width">440</property>
+    <property name="default_width">550</property>
     <property name="default_height">250</property>
-    <child>
-      <placeholder/>
-    </child>
     <child>
       <object class="GtkBox" id="MainBox">
         <property name="visible">True</property>
@@ -130,6 +127,22 @@
                     <property name="position">1</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkButton" id="_removeAllButton">
+                    <property name="label" translatable="yes">Remove All</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="tooltip_text" translatable="yes">Removes the selected update</property>
+                    <property name="margin_left">10</property>
+                    <signal name="clicked" handler="RemoveAllButton_Clicked" swapped="no"/>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
               </object>
               <packing>
                 <property name="expand">True</property>
@@ -194,5 +207,8 @@
         </child>
       </object>
     </child>
+    <child type="titlebar">
+      <placeholder/>
+    </child>
   </object>
 </interface>