diff --git a/modules/gui/qt/maininterface/mainctx.cpp b/modules/gui/qt/maininterface/mainctx.cpp
index 3731c15f12273f55610bd0e15a684c8a100d6845..e7fc42a38bfdb372837796e89dfbfa17ea687c23 100644
--- a/modules/gui/qt/maininterface/mainctx.cpp
+++ b/modules/gui/qt/maininterface/mainctx.cpp
@@ -160,7 +160,7 @@ MainCtx::MainCtx(qt_intf_t *_p_intf)
     vlc_medialibrary_t* ml = vlc_ml_instance_get( p_intf );
     b_hasMedialibrary = (ml != NULL);
     if (b_hasMedialibrary) {
-        m_medialib = new MediaLib(p_intf);
+        m_medialib = new MediaLib(p_intf, p_intf->p_mainPlaylistController);
     }
 
     /* Controlbar Profile Model Creation */
diff --git a/modules/gui/qt/medialibrary/medialib.cpp b/modules/gui/qt/medialibrary/medialib.cpp
index 8bf03bec378f58b2abe8f96ee22d077535e7c95f..a19f93b85c74c43cb0c387bdec86e558b194051e 100644
--- a/modules/gui/qt/medialibrary/medialib.cpp
+++ b/modules/gui/qt/medialibrary/medialib.cpp
@@ -23,9 +23,10 @@
 
 #include <utility>
 
-MediaLib::MediaLib(qt_intf_t *_intf, QObject *_parent)
+MediaLib::MediaLib(qt_intf_t *_intf, vlc::playlist::PlaylistController* playlistController, QObject *_parent)
     : QObject( _parent )
     , m_intf( _intf )
+    , m_playlistController(playlistController)
     , m_ml( vlc_ml_instance_get( _intf ) )
     , m_event_cb( nullptr, [this](vlc_ml_event_callback_t* cb ) {
         vlc_ml_event_unregister_callback( m_ml, cb );
@@ -138,14 +139,14 @@ void MediaLib::addToPlaylist(const QString& mrl, const QStringList &options)
 {
     QVector<vlc::playlist::Media> medias;
     convertQStringToPlaylistMedias(mrl, options, medias);
-    m_intf->p_mainPlaylistController->append(medias, false);
+    m_playlistController->append(medias, false);
 }
 
 void MediaLib::addToPlaylist(const QUrl& mrl, const QStringList &options)
 {
     QVector<vlc::playlist::Media> medias;
     convertQUrlToPlaylistMedias(mrl, options, medias);
-    m_intf->p_mainPlaylistController->append(medias, false);
+    m_playlistController->append(medias, false);
 }
 
 // A specific item has been asked to be added to the playlist
@@ -163,7 +164,7 @@ void MediaLib::addToPlaylist(const MLItemId & itemId, const QStringList &options
     //UI thread
     [this](quint64, Context& ctx){
         if (!ctx.medias.empty())
-            m_intf->p_mainPlaylistController->append(ctx.medias, false);
+            m_playlistController->append(ctx.medias, false);
     });
 }
 
@@ -182,7 +183,7 @@ void MediaLib::addToPlaylist(const QVariantList& itemIdList, const QStringList &
     //UI thread
     [this](quint64, Context& ctx){
         if (!ctx.medias.empty())
-            m_intf->p_mainPlaylistController->append(ctx.medias, false);
+            m_playlistController->append(ctx.medias, false);
     });
 }
 
@@ -203,7 +204,7 @@ void MediaLib::addAndPlay(const MLItemId & itemId, const QStringList &options )
     //UI thread
     [this](quint64, Context& ctx){
         if (!ctx.medias.empty())
-            m_intf->p_mainPlaylistController->append(ctx.medias, true);
+            m_playlistController->append(ctx.medias, true);
     });
 
 
@@ -212,13 +213,13 @@ void MediaLib::addAndPlay(const MLItemId & itemId, const QStringList &options )
 void MediaLib::addAndPlay(const QString& mrl, const QStringList &options)
 {
     vlc::playlist::Media media{ mrl, mrl, options };
-    m_intf->p_mainPlaylistController->append( QVector<vlc::playlist::Media>{media}, true );
+    m_playlistController->append( QVector<vlc::playlist::Media>{media}, true );
 }
 
 void MediaLib::addAndPlay(const QUrl& mrl, const QStringList &options)
 {
     vlc::playlist::Media media{ mrl.toString(QUrl::FullyEncoded), mrl.fileName(), options };
-    m_intf->p_mainPlaylistController->append( QVector<vlc::playlist::Media>{media}, true );
+    m_playlistController->append( QVector<vlc::playlist::Media>{media}, true );
 }
 
 
@@ -237,7 +238,7 @@ void MediaLib::addAndPlay(const QVariantList& itemIdList, const QStringList &opt
     //UI thread
     [this](quint64, Context& ctx){
         if (!ctx.medias.empty())
-            m_intf->p_mainPlaylistController->append(ctx.medias, true);
+            m_playlistController->append(ctx.medias, true);
     });
 }
 
@@ -257,7 +258,7 @@ void MediaLib::insertIntoPlaylist(const size_t index, const QVariantList &itemId
     [this, index]
     (quint64, Context& ctx) {
         if (!ctx.medias.isEmpty())
-            m_intf->p_mainPlaylistController->insert( index, ctx.medias );
+            m_playlistController->insert( index, ctx.medias );
     });
 }
 
diff --git a/modules/gui/qt/medialibrary/medialib.hpp b/modules/gui/qt/medialibrary/medialib.hpp
index b4dda4a9beca64ec512b4355cdc42059b1edac0f..84f305dd94e40af1decfffbcc0154e334c0cf721 100644
--- a/modules/gui/qt/medialibrary/medialib.hpp
+++ b/modules/gui/qt/medialibrary/medialib.hpp
@@ -56,7 +56,7 @@ public:
     };
 
 public:
-    MediaLib(qt_intf_t* _intf, QObject* _parent = nullptr );
+    MediaLib(qt_intf_t* _intf, vlc::playlist::PlaylistController* playlistController, QObject* _parent = nullptr );
 
     void destroy();
 
@@ -199,6 +199,7 @@ private slots:
 
 private:
     qt_intf_t* m_intf;
+    vlc::playlist::PlaylistController* m_playlistController = nullptr;
     MLCustomCover *m_customCover {};
 
     bool m_idle = false;