diff --git a/src/osmo_gsm_tester/core/schema.py b/src/osmo_gsm_tester/core/schema.py
index 72c2738..816f439 100644
--- a/src/osmo_gsm_tester/core/schema.py
+++ b/src/osmo_gsm_tester/core/schema.py
@@ -111,7 +111,7 @@
     raise ValueError('Unknown Cipher value: %r' % val)
 
 def modem_feature(val):
-    if val in ('sms', 'gprs', 'voice', 'ussd', 'sim', '2g', '3g', '4g'):
+    if val in ('sms', 'gprs', 'voice', 'ussd', 'sim', '2g', '3g', '4g', 'dl_qam256'):
         return True
     raise ValueError('Unknown Modem Feature: %r' % val)
 
diff --git a/src/osmo_gsm_tester/obj/enb_srs.py b/src/osmo_gsm_tester/obj/enb_srs.py
index 93168bf..8319ba4 100644
--- a/src/osmo_gsm_tester/obj/enb_srs.py
+++ b/src/osmo_gsm_tester/obj/enb_srs.py
@@ -269,19 +269,30 @@
         return rfemu_obj
 
     def ue_max_rate(self, downlink=True, num_carriers=1):
-        # The max rate for a single UE per PRB configuration in TM1 with MCS 28 QAM64
-        max_phy_rate_tm1_dl = { 6 : 3.5e6,
-                               15 : 11e6,
-                               25 : 18e6,
-                               50 : 36e6,
-                               75 : 55e6,
-                               100 : 75e6 }
+
+
+        # The max rate for a single UE per PRB configuration in TM1 with MCS 28
+        if 'dl_qam256' in self.ue.features():
+            max_phy_rate_tm1_dl = {6: 5.9e6,
+                                   15: 14.6e6,
+                                   25: 24.5e6,
+                                   50: 48.9e6,
+                                   75: 75.3e6,
+                                   100: 97.8e6}
+        else:
+            max_phy_rate_tm1_dl = {6: 3.5e6,
+                                   15: 11e6,
+                                   25: 18e6,
+                                   50: 36e6,
+                                   75: 55e6,
+                                   100: 75e6}
         max_phy_rate_tm1_ul = { 6 : 1.7e6,
                                15 : 4.7e6,
                                25 : 10e6,
                                50 : 23e6,
                                75 : 34e6,
                                100 : 51e6 }
+
         if downlink:
             max_rate = max_phy_rate_tm1_dl[self.num_prb()]
         else:
diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py
index a3505c8..610d3e6 100644
--- a/src/osmo_gsm_tester/obj/ms_srs.py
+++ b/src/osmo_gsm_tester/obj/ms_srs.py
@@ -128,6 +128,9 @@
         # Collect KPIs for each TC
         self.testenv.test().set_kpis(self.get_kpis())
 
+    def features(self):
+        return self._conf.get('features', [])
+
     def scp_back_metrics(self, raiseException=True):
         ''' Copy back metrics only if they have not been copied back yet '''
         if not self.have_metrics_file:
diff --git a/src/osmo_gsm_tester/templates/srsue.conf.tmpl b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
index 284922b..31642cd 100644
--- a/src/osmo_gsm_tester/templates/srsue.conf.tmpl
+++ b/src/osmo_gsm_tester/templates/srsue.conf.tmpl
@@ -150,6 +150,10 @@
 % if int(ue.num_carriers) > 1:
 ue_category       = 7
 release           = 10
+% elif "dl_qam256" in ue.features:
+ue_category       = 7
+release           = 13
+ue_category_dl    = 14
 % else:
 #ue_category       = 4
 #release           = 8
