diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c
index 00eff48..8ee8bf8 100644
--- a/gst/rtp/gstrtph264pay.c
+++ b/gst/rtp/gstrtph264pay.c
@@ -288,7 +288,7 @@
 
     for (i = 0; i < gst_caps_get_size (allowed_caps); i++) {
       GstStructure *s = gst_caps_get_structure (allowed_caps, i);
-      GstStructure *new_s = gst_structure_empty_new ("video/x-h264");
+      GstStructure *new_s = gst_structure_new_empty ("video/x-h264");
       const gchar *profile_level_id;
 
       profile_level_id = gst_structure_get_string (s, "profile-level-id");
diff --git a/gst/rtp/gstrtptheoradepay.c b/gst/rtp/gstrtptheoradepay.c
index 6ddcd7d..a4b98ed 100644
--- a/gst/rtp/gstrtptheoradepay.c
+++ b/gst/rtp/gstrtptheoradepay.c
@@ -645,7 +645,7 @@
     rtptheoradepay->needs_keyframe = TRUE;
     gst_pad_push_event (GST_BASE_RTP_DEPAYLOAD_SINKPAD (depayload),
         gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
-            gst_structure_empty_new ("GstForceKeyUnit")));
+            gst_structure_new_empty ("GstForceKeyUnit")));
     gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
@@ -672,7 +672,7 @@
 
   gst_pad_push_event (GST_BASE_RTP_DEPAYLOAD_SINKPAD (depayload),
       gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
-          gst_structure_empty_new ("GstForceKeyUnit")));
+          gst_structure_new_empty ("GstForceKeyUnit")));
 
   return TRUE;
 }
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c
index 963f089..9dc9c77 100644
--- a/gst/rtpmanager/gstrtpsession.c
+++ b/gst/rtpmanager/gstrtpsession.c
@@ -1750,7 +1750,7 @@
    * internal SSRC so that we don't have to patch it. Create a structure with
    * the SSRC and another one without. */
   s1 = gst_structure_new ("application/x-rtp", "ssrc", G_TYPE_UINT, ssrc, NULL);
-  s2 = gst_structure_empty_new ("application/x-rtp");
+  s2 = gst_structure_new_empty ("application/x-rtp");
 
   result = gst_caps_new_full (s1, s2, NULL);
 
diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c
index ecbe44b..1ac18a7 100644
--- a/gst/rtpmanager/rtpsession.c
+++ b/gst/rtpmanager/rtpsession.c
@@ -2009,7 +2009,7 @@
     if (!source)
       return;
 
-    sdes = gst_structure_empty_new ("application/x-rtp-source-sdes");
+    sdes = gst_structure_new_empty ("application/x-rtp-source-sdes");
 
     more_entries = gst_rtcp_packet_sdes_first_entry (packet);
     j = 0;
diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c
index 6158c10..720ad18 100644
--- a/gst/rtpmanager/rtpsource.c
+++ b/gst/rtpmanager/rtpsource.c
@@ -230,7 +230,7 @@
   src->probation = RTP_DEFAULT_PROBATION;
   src->closing = FALSE;
 
-  src->sdes = gst_structure_empty_new ("application/x-rtp-source-sdes");
+  src->sdes = gst_structure_new_empty ("application/x-rtp-source-sdes");
 
   src->payload = -1;
   src->clock_rate = -1;
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 7373b62..d31a186 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -5423,7 +5423,7 @@
   if (src->props)
     gst_structure_remove_all_fields (src->props);
   else
-    src->props = gst_structure_empty_new ("RTSPProperties");
+    src->props = gst_structure_new_empty ("RTSPProperties");
 
   if (src->debug)
     gst_sdp_message_dump (sdp);
