diff --git a/ext/alsa/gstalsamixer.c b/ext/alsa/gstalsamixer.c
index 44d78bb..8bf7294 100644
--- a/ext/alsa/gstalsamixer.c
+++ b/ext/alsa/gstalsamixer.c
@@ -323,7 +323,7 @@ gst_alsa_mixer_ensure_track_list (GstAlsaMixer * mixer)
       }
 
       if (snd_mixer_selem_is_enumerated (element)) {
-        GstMixerOptions *opts = gst_alsa_mixer_options_new (element, i);
+        GstMixerOptions *opts = gst_alsa_mixer_options_new (element, samename, i);
 
         GST_LOG ("[%s] is enumerated (%d)", name, i);
         mixer->tracklist = g_list_append (mixer->tracklist, opts);
diff --git a/ext/alsa/gstalsamixeroptions.c b/ext/alsa/gstalsamixeroptions.c
index da5630d..2898325 100644
--- a/ext/alsa/gstalsamixeroptions.c
+++ b/ext/alsa/gstalsamixeroptions.c
@@ -67,16 +67,23 @@ gst_alsa_mixer_options_init (GstAlsaMixerOptions * alsa_opts)
 }
 
 GstMixerOptions *
-gst_alsa_mixer_options_new (snd_mixer_elem_t * element, gint track_num)
+gst_alsa_mixer_options_new (snd_mixer_elem_t * element, gint dupecount, gint track_num)
 {
   GstMixerOptions *opts;
   GstAlsaMixerOptions *alsa_opts;
   GstMixerTrack *track;
-  const gchar *label;
+  const gchar *alsa_name;
+  gchar *label;
   gint num, i;
   gchar str[256];
 
-  label = snd_mixer_selem_get_name (element);
+  alsa_name = snd_mixer_selem_get_name (element);
+  /* FIXME: translate this? */
+  if (dupecount == 0) {
+    label = g_strdup (alsa_name);
+  } else {
+    label = g_strdup_printf ("%s %d", alsa_name, dupecount);
+  }
 
   opts = g_object_new (GST_ALSA_MIXER_OPTIONS_TYPE,
       "untranslated-label", label, NULL);
@@ -84,7 +91,8 @@ gst_alsa_mixer_options_new (snd_mixer_elem_t * element, gint track_num)
   track = (GstMixerTrack *) opts;
 
   /* set basic information */
-  track->label = g_strdup (label);      /* FIXME: translate this? */
+  track->label = g_strdup (label);
+  g_free (label);
   track->num_channels = 0;
   track->flags = 0;
   alsa_opts->element = element;
diff --git a/ext/alsa/gstalsamixeroptions.h b/ext/alsa/gstalsamixeroptions.h
index b3c36c0..317ffbf 100644
--- a/ext/alsa/gstalsamixeroptions.h
+++ b/ext/alsa/gstalsamixeroptions.h
@@ -53,6 +53,7 @@ struct _GstAlsaMixerOptionsClass {
 
 GType           gst_alsa_mixer_options_get_type (void);
 GstMixerOptions *gst_alsa_mixer_options_new     (snd_mixer_elem_t *     element,
+                                                 gint                   dupecount,
                                                  gint                   track_num);
 
 
