diff --git a/src/currentcallview.cpp b/src/currentcallview.cpp
index d487583e019470c16100fac027c6b4478866abdd..91be6142b82a0e7ed2d696cfea24867c2b187e4f 100644
--- a/src/currentcallview.cpp
+++ b/src/currentcallview.cpp
@@ -941,6 +941,9 @@ CppImpl::insertControls()
         g_signal_connect(scale, "button-release-event", G_CALLBACK(on_quality_button_released), self);
     }
 
+    g_signal_connect(widgets->video_widget, "drag-data-received",
+                     G_CALLBACK(video_widget_on_drag_data_received), nullptr);
+
     auto videoCodecs = (*accountInfo)->codecModel->getVideoCodecs();
     if (!videoCodecs.empty()) {
         bool autoQualityEnabled = videoCodecs.front().auto_quality_enabled;
diff --git a/src/video/video_widget.cpp b/src/video/video_widget.cpp
index 8c001b8dfb28b8ce4ca52ccc8a94b5cfed65448d..d3d012dc35f49e090c682c9fd71bd2762f291036 100644
--- a/src/video/video_widget.cpp
+++ b/src/video/video_widget.cpp
@@ -386,12 +386,22 @@ void video_widget_on_drag_data_received(G_GNUC_UNUSED GtkWidget *self,
                                                       GtkSelectionData *selection_data,
                                         G_GNUC_UNUSED guint info,
                                         G_GNUC_UNUSED guint32 time,
-                                                      Call *call)
+                                        G_GNUC_UNUSED gpointer data)
 {
-    g_return_if_fail(call);
+    auto* priv = VIDEO_WIDGET_GET_PRIVATE(self);
+    g_return_if_fail(priv);
     gchar **uris = gtk_selection_data_get_uris(selection_data);
 
-    /* only play the first selection */
+    Call *call = nullptr;
+    for (const auto& activeCall: CallModel::instance().getActiveCalls()) {
+        if (activeCall->videoRenderer() == priv->remote->renderer) {
+            call = activeCall;
+            break;
+        }
+    }
+
+    if (!call) return;
+
     if (uris && *uris){
         if (auto out_media = call->firstMedia<media::Video>(media::Media::Direction::OUT))
             out_media->sourceModel()->setFile(QUrl(*uris));
diff --git a/src/video/video_widget.h b/src/video/video_widget.h
index f07f3bae2dfd7329b2c8dccdc37af604bd278f36..a7f6b77357122e95ae524d4e6f74c4f8ada74867 100644
--- a/src/video/video_widget.h
+++ b/src/video/video_widget.h
@@ -54,7 +54,7 @@ void            video_widget_on_drag_data_received (GtkWidget *self,
                                                     GtkSelectionData *selection_data,
                                                     guint info,
                                                     guint32 time,
-                                                    Call* call);
+                                                    gpointer data);
 gboolean        video_widget_on_button_press_in_screen_event (VideoWidget *self,
                                                               GdkEventButton *event,
                                                               Call* call);