--- a/gst/gstinfo.c
+++ b/gst/gstinfo.c
@@ -1415,6 +1415,31 @@ gst_debug_unset_threshold_for_name (const gchar * name)
   gst_debug_reset_all_thresholds ();
 }
 
+/**
+ * gst_debug_unset_threshold_for_names:
+ * @name: name of the categories to set
+ *
+ * Resets all categories with the given name back to the default level.
+ */
+void
+gst_debug_reset_to_default_threshold (void)
+{
+  GSList *walk;
+
+  g_mutex_lock (&__level_name_mutex);
+  while ((walk = __level_name)) {
+    LevelNameEntry *entry = walk->data;
+
+    __level_name = walk->next;
+    g_pattern_spec_free (entry->pat);
+    g_slice_free (LevelNameEntry, entry);
+    g_slist_free_1 (walk);
+  }
+  g_mutex_unlock (&__level_name_mutex);
+  gst_debug_reset_all_thresholds ();
+}
+
+
 GstDebugCategory *
 _gst_debug_category_new (const gchar * name, guint color,
     const gchar * description)
--- a/gst/gstinfo.h
+++ b/gst/gstinfo.h
@@ -347,6 +347,7 @@ GstDebugLevel   gst_debug_get_default_threshold      (void);
 void            gst_debug_set_threshold_for_name     (const gchar * name,
                                                       GstDebugLevel level);
 void            gst_debug_unset_threshold_for_name   (const gchar * name);
+void            gst_debug_reset_to_default_threshold (void);
 
 
 void            gst_debug_category_free              (GstDebugCategory *	category);
