diff --git a/src/voip/WebRTCSession.cpp b/src/voip/WebRTCSession.cpp
index 801a365cb313ba4d53359f0667f89a237ccd1e7f..a01b3a39ede27d6b181b68774b4c853cbcbb6d20 100644
--- a/src/voip/WebRTCSession.cpp
+++ b/src/voip/WebRTCSession.cpp
@@ -996,7 +996,8 @@ WebRTCSession::addVideoPipeline(int vp8PayloadType)
         g_signal_emit_by_name(webrtcbin, "get-transceivers", &transceivers);
         GstWebRTCRTPTransceiver *transceiver =
           g_array_index(transceivers, GstWebRTCRTPTransceiver *, 1);
-        transceiver->direction = GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY;
+        g_object_set(
+          transceiver, "direction", GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY, nullptr);
         g_array_unref(transceivers);
     }