diff --git a/docs/libs/gst-plugins-bad-libs-sections.txt b/docs/libs/gst-plugins-bad-libs-sections.txt
index 8e51936..a14bfc2 100644
--- a/docs/libs/gst-plugins-bad-libs-sections.txt
+++ b/docs/libs/gst-plugins-bad-libs-sections.txt
@@ -1708,9 +1708,6 @@
 gst_player_set_config
 gst_player_get_config
 
-gst_player_set_position_update_interval
-gst_player_get_position_update_interval
-
 GstPlayerState
 gst_player_state_get_name
 
@@ -1767,6 +1764,9 @@
 GstPlayerVideoRendererInterface
 
 <SUBSECTION config>
+gst_player_config_set_position_update_interval
+gst_player_config_get_position_update_interval
+
 gst_player_config_set_user_agent
 gst_player_config_get_user_agent
 
diff --git a/gst-libs/gst/player/gstplayer.c b/gst-libs/gst/player/gstplayer.c
index 01f00e3..a23d26b 100644
--- a/gst-libs/gst/player/gstplayer.c
+++ b/gst-libs/gst/player/gstplayer.c
@@ -84,12 +84,14 @@
 typedef enum
 {
   CONFIG_QUARK_USER_AGENT = 0,
+  CONFIG_QUARK_POSITION_INTERVAL_UPDATE,
 
   CONFIG_QUARK_MAX
 } ConfigQuarkId;
 
 static const gchar *_config_quark_strings[] = {
   "user-agent",
+  "position-interval-update",
 };
 
 GQuark _config_quark_table[CONFIG_QUARK_MAX];
@@ -113,7 +115,6 @@
   PROP_MUTE,
   PROP_RATE,
   PROP_PIPELINE,
-  PROP_POSITION_UPDATE_INTERVAL,
   PROP_VIDEO_MULTIVIEW_MODE,
   PROP_VIDEO_MULTIVIEW_FLAGS,
   PROP_AUDIO_VIDEO_OFFSET,
@@ -169,7 +170,6 @@
   GSource *tick_source, *ready_timeout_source;
 
   gdouble rate;
-  guint position_update_interval_ms;
 
   GstPlayerState app_state;
   gint buffering;
@@ -218,8 +218,6 @@
 static gboolean gst_player_pause_internal (gpointer user_data);
 static gboolean gst_player_play_internal (gpointer user_data);
 static gboolean gst_player_set_rate_internal (gpointer user_data);
-static gboolean gst_player_set_position_update_interval_internal (gpointer
-    user_data);
 static void change_state (GstPlayer * self, GstPlayerState state);
 
 static GstPlayerMediaInfo *gst_player_media_info_create (GstPlayer * self);
@@ -263,9 +261,12 @@
   self->context = g_main_context_new ();
   self->loop = g_main_loop_new (self->context, FALSE);
 
-  self->config = gst_structure_new_id_empty (QUARK_CONFIG);
+  /* *INDENT-OFF* */
+  self->config = gst_structure_new_id (QUARK_CONFIG,
+      CONFIG_QUARK (POSITION_INTERVAL_UPDATE), G_TYPE_UINT, DEFAULT_POSITION_UPDATE_INTERVAL_MS,
+      NULL);
+  /* *INDENT-ON* */
 
-  self->position_update_interval_ms = DEFAULT_POSITION_UPDATE_INTERVAL_MS;
   self->seek_pending = FALSE;
   self->seek_position = GST_CLOCK_TIME_NONE;
   self->last_seek_time = GST_CLOCK_TIME_NONE;
@@ -367,13 +368,6 @@
       g_param_spec_double ("rate", "rate", "Playback rate",
       -64.0, 64.0, DEFAULT_RATE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
-  param_specs[PROP_POSITION_UPDATE_INTERVAL] =
-      g_param_spec_uint ("position-update-interval", "Position update interval",
-      "Interval in milliseconds between two position-updated signals."
-      "Pass 0 to stop updating the position.",
-      0, 10000, DEFAULT_POSITION_UPDATE_INTERVAL_MS,
-      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
-
   param_specs[PROP_VIDEO_MULTIVIEW_MODE] =
       g_param_spec_enum ("video-multiview-mode",
       "Multiview Mode Override",
@@ -672,15 +666,6 @@
       GST_DEBUG_OBJECT (self, "Set mute=%d", g_value_get_boolean (value));
       g_object_set_property (G_OBJECT (self->playbin), "mute", value);
       break;
-    case PROP_POSITION_UPDATE_INTERVAL:
-      g_mutex_lock (&self->lock);
-      self->position_update_interval_ms = g_value_get_uint (value);
-      GST_DEBUG_OBJECT (self, "Set position update interval=%u ms",
-          g_value_get_uint (value));
-      g_mutex_unlock (&self->lock);
-
-      gst_player_set_position_update_interval_internal (self);
-      break;
     case PROP_VIDEO_MULTIVIEW_MODE:
       GST_DEBUG_OBJECT (self, "Set multiview mode=%u",
           g_value_get_enum (value));
@@ -783,11 +768,6 @@
     case PROP_PIPELINE:
       g_value_set_object (value, self->playbin);
       break;
-    case PROP_POSITION_UPDATE_INTERVAL:
-      g_mutex_lock (&self->lock);
-      g_value_set_uint (value, gst_player_get_position_update_interval (self));
-      g_mutex_unlock (&self->lock);
-      break;
     case PROP_VIDEO_MULTIVIEW_MODE:{
       g_object_get_property (G_OBJECT (self->playbin), "video-multiview-mode",
           value);
@@ -932,13 +912,17 @@
 static void
 add_tick_source (GstPlayer * self)
 {
+  guint position_update_interval_ms;
+
   if (self->tick_source)
     return;
 
-  if (!self->position_update_interval_ms)
+  position_update_interval_ms =
+      gst_player_config_get_position_update_interval (self->config);
+  if (!position_update_interval_ms)
     return;
 
-  self->tick_source = g_timeout_source_new (self->position_update_interval_ms);
+  self->tick_source = g_timeout_source_new (position_update_interval_ms);
   g_source_set_callback (self->tick_source, (GSourceFunc) tick_cb, self, NULL);
   g_source_attach (self->tick_source, self->context);
 }
@@ -3092,59 +3076,6 @@
   return self->rate;
 }
 
-static gboolean
-gst_player_set_position_update_interval_internal (gpointer user_data)
-{
-  GstPlayer *self = user_data;
-
-  g_mutex_lock (&self->lock);
-
-  if (self->tick_source) {
-    remove_tick_source (self);
-    add_tick_source (self);
-  }
-
-  g_mutex_unlock (&self->lock);
-
-  return G_SOURCE_REMOVE;
-}
-
-/**
- * gst_player_set_position_update_interval:
- * @player: #GstPlayer instance
- * @interval: interval in ms
- *
- * Set interval in milliseconds between two position-updated signals.
- * Pass 0 to stop updating the position.
- */
-void
-gst_player_set_position_update_interval (GstPlayer * self, guint interval)
-{
-  g_return_if_fail (GST_IS_PLAYER (self));
-  g_return_if_fail (interval <= 10000);
-
-  g_mutex_lock (&self->lock);
-  self->position_update_interval_ms = interval;
-  g_mutex_unlock (&self->lock);
-
-  gst_player_set_position_update_interval_internal (self);
-}
-
-/**
- * gst_player_get_position_update_interval:
- * @player: #GstPlayer instance
- *
- * Returns: current position update interval in milliseconds
- */
-guint
-gst_player_get_position_update_interval (GstPlayer * self)
-{
-  g_return_val_if_fail (GST_IS_PLAYER (self),
-      DEFAULT_POSITION_UPDATE_INTERVAL_MS);
-
-  return self->position_update_interval_ms;
-}
-
 /**
  * gst_player_seek:
  * @player: #GstPlayer instance
@@ -4227,3 +4158,43 @@
 
   return agent;
 }
+
+/**
+ * gst_player_config_set_position_update_interval:
+ * @config: a #GstPlayer configuration
+ * @interval: interval in ms
+ *
+ * set interval in milliseconds between two position-updated signals.
+ * pass 0 to stop updating the position.
+ * Since 1.10
+ */
+void
+gst_player_config_set_position_update_interval (GstStructure * config,
+    guint interval)
+{
+  g_return_if_fail (config != NULL);
+  g_return_if_fail (interval <= 10000);
+
+  gst_structure_id_set (config,
+      CONFIG_QUARK (POSITION_INTERVAL_UPDATE), G_TYPE_UINT, interval, NULL);
+}
+
+/**
+ * gst_player_config_get_position_update_interval:
+ * @player: #GstPlayer instance
+ *
+ * Returns: current position update interval in milliseconds
+ * Since 1.10
+ */
+guint
+gst_player_config_get_position_update_interval (GstStructure * config)
+{
+  guint interval = DEFAULT_POSITION_UPDATE_INTERVAL_MS;
+
+  g_return_val_if_fail (config != NULL, DEFAULT_POSITION_UPDATE_INTERVAL_MS);
+
+  gst_structure_id_get (config,
+      CONFIG_QUARK (POSITION_INTERVAL_UPDATE), G_TYPE_UINT, &interval, NULL);
+
+  return interval;
+}
diff --git a/gst-libs/gst/player/gstplayer.h b/gst-libs/gst/player/gstplayer.h
index 93b6d72..641af21 100644
--- a/gst-libs/gst/player/gstplayer.h
+++ b/gst-libs/gst/player/gstplayer.h
@@ -202,6 +202,10 @@
                                                        const gchar * agent);
 gchar *        gst_player_config_get_user_agent       (GstStructure * config);
 
+void           gst_player_config_set_position_update_interval  (GstStructure * config,
+                                                                guint          interval);
+guint          gst_player_config_get_position_update_interval  (GstStructure * config);
+
 G_END_DECLS
 
 #endif /* __GST_PLAYER_H__ */
diff --git a/tests/check/libs/player.c b/tests/check/libs/player.c
index e0fcf92..e4c83fc 100644
--- a/tests/check/libs/player.c
+++ b/tests/check/libs/player.c
@@ -100,20 +100,17 @@
 {
   GstPlayer *player;
   guint interval = 0;
+  GstStructure *config;
 
   player = gst_player_new (NULL, NULL);
 
   fail_unless (player != NULL);
 
-  gst_player_set_position_update_interval (player, 500);
-  interval = gst_player_get_position_update_interval (player);
-
+  config = gst_player_get_config (player);
+  gst_player_config_set_position_update_interval (config, 500);
+  interval = gst_player_config_get_position_update_interval (config);
   fail_unless (interval == 500);
-
-  g_object_set (player, "position-update-interval", 1000, NULL);
-  g_object_get (player, "position-update-interval", &interval, NULL);
-
-  fail_unless_equals_int (interval, 1000);
+  gst_player_set_config (player, config);
 
   g_object_unref (player);
 }
@@ -1476,7 +1473,6 @@
 
     if (do_quit && position >= 2000 * GST_MSECOND) {
       do_quit = FALSE;
-      gst_player_set_position_update_interval (player, 0);
       g_main_loop_quit (new_state->loop);
     }
   } else if (change == STATE_CHANGE_END_OF_STREAM ||
@@ -1499,6 +1495,7 @@
   GstPlayer *player;
   TestPlayerState state;
   gchar *uri;
+  GstStructure *config;
 
   memset (&state, 0, sizeof (state));
   state.loop = g_main_loop_new (NULL, FALSE);
@@ -1506,7 +1503,10 @@
   state.test_data = GINT_TO_POINTER (0);
 
   player = test_player_new (&state);
-  gst_player_set_position_update_interval (player, 600);
+
+  config = gst_player_get_config (player);
+  gst_player_config_set_position_update_interval (config, 600);
+  gst_player_set_config (player, config);
 
   fail_unless (player != NULL);
 
@@ -1520,6 +1520,13 @@
 
   fail_unless_equals_int (GPOINTER_TO_INT (state.test_data), 5);
 
+  /* Disable position updates */
+  gst_player_stop (player);
+
+  config = gst_player_get_config (player);
+  gst_player_config_set_position_update_interval (config, 0);
+  gst_player_set_config (player, config);
+
   g_timeout_add (2000, quit_loop_cb, state.loop);
   g_main_loop_run (state.loop);
 
diff --git a/win32/common/libgstplayer.def b/win32/common/libgstplayer.def
index 09b74fb..ccc32ed 100644
--- a/win32/common/libgstplayer.def
+++ b/win32/common/libgstplayer.def
@@ -7,7 +7,9 @@
 	gst_player_audio_info_get_type
 	gst_player_color_balance_type_get_name
 	gst_player_color_balance_type_get_type
+	gst_player_config_get_position_update_interval
 	gst_player_config_get_user_agent
+	gst_player_config_set_position_update_interval
 	gst_player_config_set_user_agent
 	gst_player_error_get_name
 	gst_player_error_get_type
@@ -29,7 +31,6 @@
 	gst_player_get_mute
 	gst_player_get_pipeline
 	gst_player_get_position
-	gst_player_get_position_update_interval
 	gst_player_get_rate
 	gst_player_get_subtitle_streams
 	gst_player_get_subtitle_uri
@@ -60,7 +61,6 @@
 	gst_player_set_multiview_flags
 	gst_player_set_multiview_mode
 	gst_player_set_mute
-	gst_player_set_position_update_interval
 	gst_player_set_rate
 	gst_player_set_subtitle_track
 	gst_player_set_subtitle_track_enabled
