diff --git a/tests/check/elements/rganalysis.c b/tests/check/elements/rganalysis.c
index 5f19caf..915dc34 100644
--- a/tests/check/elements/rganalysis.c
+++ b/tests/check/elements/rganalysis.c
@@ -296,11 +296,8 @@ poll_eos (GstElement * element)
   gst_object_unref (bus);
 }
 
-/* This also polls for EOS since the TAG message comes right before the end of
- * streams. */
-
 static GstTagList *
-poll_tags (GstElement * element)
+poll_tags_only (GstElement * element)
 {
   GstBus *bus = gst_element_get_bus (element);
   GstTagList *tag_list;
@@ -313,6 +310,17 @@ poll_tags (GstElement * element)
   gst_message_unref (message);
   gst_object_unref (bus);
 
+  return tag_list;
+}
+
+/* This also polls for EOS since the TAG message comes right before the end of
+ * streams. */
+
+static GstTagList *
+poll_tags (GstElement * element)
+{
+  GstTagList *tag_list = poll_tags_only (element);
+
   poll_eos (element);
 
   return tag_list;
@@ -1258,8 +1266,13 @@ GST_START_TEST (test_forced)
   for (i = 20; i--;)
     push_buffer (test_buffer_const_float_stereo (44100, 512, 0.5, 0.5));
   send_eos_event (element);
+
   /* This fails if a tag message is generated: */
-  poll_eos (element);
+  /* Same values as above */
+  tag_list = poll_tags (element);
+  fail_unless_track_gain (tag_list, 2.21);
+  fail_unless_track_peak (tag_list, 1.0);
+  gst_tag_list_unref (tag_list);
 
   /* Now back to a track without tags. */
   send_flush_events (element);
@@ -1305,8 +1318,15 @@ GST_START_TEST (test_forced_separate)
     push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
             0.5, 0.5));
   send_eos_event (element);
-  /* This fails if a tag message is generated: */
-  poll_eos (element);
+
+  /* Same values as above */
+  tag_list = poll_tags_only (element);
+  fail_unless_track_gain (tag_list, 2.21);
+  gst_tag_list_unref (tag_list);
+
+  tag_list = poll_tags (element);
+  fail_unless_track_peak (tag_list, 1.0);
+  gst_tag_list_unref (tag_list);
 
   /* Now a track without tags. */
   send_flush_events (element);
@@ -1353,7 +1373,12 @@ GST_START_TEST (test_forced_after_data)
   send_tag_event (element, tag_list);
 
   send_eos_event (element);
-  poll_eos (element);
+
+  /* Same values as above */
+  tag_list = poll_tags (element);
+  fail_unless_track_gain (tag_list, 2.21);
+  fail_unless_track_peak (tag_list, 1.0);
+  gst_tag_list_unref (tag_list);
 
   send_flush_events (element);
   send_segment_event (element);
@@ -1397,8 +1422,12 @@ GST_START_TEST (test_forced_album)
     push_buffer (test_buffer_square_float_stereo (&accumulator, 44100, 512,
             0.5, 0.5));
   send_eos_event (element);
-  /* This fails if a tag message is generated: */
-  poll_eos (element);
+
+  /* Same values as above */
+  tag_list = poll_tags (element);
+  fail_unless_track_gain (tag_list, 2.21);
+  fail_unless_track_peak (tag_list, 1.0);
+  gst_tag_list_unref (tag_list);
 
   /* Now an album without tags. */
   g_object_set (element, "num-tracks", 2, NULL);
@@ -1459,7 +1488,13 @@ GST_START_TEST (test_forced_album_skip)
     push_buffer (test_buffer_square_float_stereo (&accumulator, 8000, 512, 0.25,
             0.25));
   send_eos_event (element);
-  poll_eos (element);
+
+  /* Same values as above */
+  tag_list = poll_tags (element);
+  fail_unless_track_gain (tag_list, 2.21);
+  fail_unless_track_peak (tag_list, 0.75);
+  gst_tag_list_unref (tag_list);
+
   fail_unless_num_tracks (element, 1);
 
   /* This track has no tags, but needs to be skipped anyways since we
@@ -1526,6 +1561,14 @@ GST_START_TEST (test_forced_album_no_skip)
   for (i = 20; i--;)
     push_buffer (test_buffer_const_float_stereo (8000, 512, 0.0, 0.0));
   send_eos_event (element);
+
+  /* the first batch from the tags */
+  tag_list = poll_tags_only(element);
+  fail_unless_track_peak (tag_list, 0.75);
+  fail_unless_track_gain (tag_list, 2.21);
+  gst_tag_list_unref (tag_list);
+
+  /* the second from the processing */
   tag_list = poll_tags (element);
   fail_unless_track_peak (tag_list, 0.0);
   fail_unless_track_gain (tag_list, SILENCE_GAIN);
@@ -1581,7 +1624,11 @@ GST_START_TEST (test_forced_abort_album_no_skip)
   for (i = 20; i--;)
     push_buffer (test_buffer_const_float_stereo (8000, 512, 0.0, 0.0));
   send_eos_event (element);
-  poll_eos (element);
+
+  tag_list = poll_tags (element);
+  fail_unless_track_peak (tag_list, 0.75);
+  fail_unless_track_gain (tag_list, 2.21);
+  gst_tag_list_unref (tag_list);
 
   cleanup_rganalysis (element);
 }
@@ -1858,13 +1905,13 @@ rganalysis_suite (void)
 
   tcase_add_test (tc_chain, test_gain_album);
 
-  tcase_skip_broken_test (tc_chain, test_forced);
-  tcase_skip_broken_test (tc_chain, test_forced_separate);
-  tcase_skip_broken_test (tc_chain, test_forced_after_data);
-  tcase_skip_broken_test (tc_chain, test_forced_album);
-  tcase_skip_broken_test (tc_chain, test_forced_album_skip);
-  tcase_skip_broken_test (tc_chain, test_forced_album_no_skip);
-  tcase_skip_broken_test (tc_chain, test_forced_abort_album_no_skip);
+  tcase_add_test (tc_chain, test_forced);
+  tcase_add_test (tc_chain, test_forced_separate);
+  tcase_add_test (tc_chain, test_forced_after_data);
+  tcase_add_test (tc_chain, test_forced_album);
+  tcase_add_test (tc_chain, test_forced_album_skip);
+  tcase_add_test (tc_chain, test_forced_album_no_skip);
+  tcase_add_test (tc_chain, test_forced_abort_album_no_skip);
 
   tcase_add_test (tc_chain, test_reference_level);
 
