diff --git a/Source/Core/DolphinQt2/GameList/GameList.cpp b/Source/Core/DolphinQt2/GameList/GameList.cpp
index 0b8a122b55..0900171af9 100644
--- a/Source/Core/DolphinQt2/GameList/GameList.cpp
+++ b/Source/Core/DolphinQt2/GameList/GameList.cpp
@@ -20,6 +20,7 @@
 #include "Common/FileUtil.h"
 #include "Core/ConfigManager.h"
 #include "Core/Core.h"
+#include "Core/HW/DVD/DVDInterface.h"
 #include "DiscIO/Blob.h"
 #include "DiscIO/Enums.h"
 
@@ -169,6 +170,15 @@ void GameList::ShowContextMenu(const QPoint&)
     else if (blob_type == DiscIO::BlobType::PLAIN)
       menu->addAction(tr("Compress ISO..."), this, &GameList::CompressISO);
 
+    QAction* change_disc = menu->addAction(tr("Change &Disc"), this, &GameList::ChangeDisc);
+
+    connect(this, &GameList::EmulationStarted, change_disc,
+            [change_disc] { change_disc->setEnabled(true); });
+    connect(this, &GameList::EmulationStopped, change_disc,
+            [change_disc] { change_disc->setEnabled(false); });
+
+    change_disc->setEnabled(Core::IsRunning());
+
     menu->addSeparator();
   }
 
@@ -409,6 +419,11 @@ void GameList::DeleteFile()
   }
 }
 
+void GameList::ChangeDisc()
+{
+  DVDInterface::ChangeDiscAsHost(GetSelectedGame()->GetFilePath().toStdString());
+}
+
 QSharedPointer<GameFile> GameList::GetSelectedGame() const
 {
   QAbstractItemView* view;
diff --git a/Source/Core/DolphinQt2/GameList/GameList.h b/Source/Core/DolphinQt2/GameList/GameList.h
index e01d32f0ad..3121ef9c98 100644
--- a/Source/Core/DolphinQt2/GameList/GameList.h
+++ b/Source/Core/DolphinQt2/GameList/GameList.h
@@ -46,6 +46,7 @@ private:
   void UninstallWAD();
   void ExportWiiSave();
   void CompressISO();
+  void ChangeDisc();
   void OnHeaderViewChanged();
 
   void MakeListView();