diff --git a/plugins/UserLanguage/API.php b/plugins/UserLanguage/API.php
index eaaa1c130416dac6e96a6d137447e18471235f84..c9e3c83b13e421248fb9e543fd42d5459bbea718 100644
--- a/plugins/UserLanguage/API.php
+++ b/plugins/UserLanguage/API.php
@@ -38,8 +38,13 @@ class API extends \Piwik\Plugin\API
     public function getLanguage($idSite, $period, $date, $segment = false)
     {
         $dataTable = $this->getDataTable(Archiver::LANGUAGE_RECORD_NAME, $idSite, $period, $date, $segment);
-        $dataTable->filter('AddSegmentValue');
         $dataTable->filter('GroupBy', array('label', __NAMESPACE__ . '\groupByLangCallback'));
+        $dataTable->filter('ColumnCallbackAddMetadata', array('label', 'segment', function($label) {
+            if (empty($label) || $label == 'xx') {
+                return 'languageCode==xx';
+            }
+            return sprintf('languageCode==%1$s,languageCode=@%1$s-', $label);
+        }));
         $dataTable->filter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\languageTranslate'));
 
         return $dataTable;
diff --git a/plugins/UserLanguage/tests/System/expected/test___UserLanguage.getLanguage_day.xml b/plugins/UserLanguage/tests/System/expected/test___UserLanguage.getLanguage_day.xml
index b5cd8692745bead3a6724faa1dfa5febcc6393c9..ed492ed6903cacad6fcefcbc910aa6673679ca2a 100644
--- a/plugins/UserLanguage/tests/System/expected/test___UserLanguage.getLanguage_day.xml
+++ b/plugins/UserLanguage/tests/System/expected/test___UserLanguage.getLanguage_day.xml
@@ -10,7 +10,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>4</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==fr-be</segment>
+		<segment>languageCode==fr,languageCode=@fr-</segment>
 	</row>
 	<row>
 		<label>Polish</label>
@@ -22,7 +22,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>3</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==pl</segment>
+		<segment>languageCode==pl,languageCode=@pl-</segment>
 	</row>
 	<row>
 		<label>English</label>
@@ -34,7 +34,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>2</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==en</segment>
+		<segment>languageCode==en,languageCode=@en-</segment>
 	</row>
 	<row>
 		<label>Arabic</label>
@@ -46,7 +46,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==ar-qa</segment>
+		<segment>languageCode==ar,languageCode=@ar-</segment>
 	</row>
 	<row>
 		<label>Basque</label>
@@ -58,7 +58,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==eu-es</segment>
+		<segment>languageCode==eu,languageCode=@eu-</segment>
 	</row>
 	<row>
 		<label>Chinese</label>
@@ -70,7 +70,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==zh-sg</segment>
+		<segment>languageCode==zh,languageCode=@zh-</segment>
 	</row>
 	<row>
 		<label>Czech</label>
@@ -82,7 +82,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==cs-cz</segment>
+		<segment>languageCode==cs,languageCode=@cs-</segment>
 	</row>
 	<row>
 		<label>German</label>
@@ -94,7 +94,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==de</segment>
+		<segment>languageCode==de,languageCode=@de-</segment>
 	</row>
 	<row>
 		<label>Greek</label>
@@ -106,7 +106,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==el-gr</segment>
+		<segment>languageCode==el,languageCode=@el-</segment>
 	</row>
 	<row>
 		<label>Serbian</label>
@@ -118,7 +118,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==sr-rs</segment>
+		<segment>languageCode==sr,languageCode=@sr-</segment>
 	</row>
 	<row>
 		<label>Thai</label>
@@ -130,7 +130,7 @@
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<segment>languageCode==th</segment>
+		<segment>languageCode==th,languageCode=@th-</segment>
 	</row>
 	<row>
 		<label>Unknown</label>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__UserLanguage.getLanguage_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__UserLanguage.getLanguage_day.xml
index ce3a3e16fafe3417d6df3e71ce856daed3867a93..bab68538ab1a855599ab90811da39644a4b8d435 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__UserLanguage.getLanguage_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__UserLanguage.getLanguage_day.xml
@@ -9,6 +9,6 @@
 		<sum_visit_length>1621</sum_visit_length>
 		<bounce_count>1</bounce_count>
 		<nb_visits_converted>2</nb_visits_converted>
-		<segment>languageCode==fr</segment>
+		<segment>languageCode==fr,languageCode=@fr-</segment>
 	</row>
 </result>
\ No newline at end of file