diff --git a/lib/xos-genx/xosgenx/jinja2_extensions/base.py b/lib/xos-genx/xosgenx/jinja2_extensions/base.py
index 029f6eb..c15bf32 100644
--- a/lib/xos-genx/xosgenx/jinja2_extensions/base.py
+++ b/lib/xos-genx/xosgenx/jinja2_extensions/base.py
@@ -63,14 +63,15 @@
     return outlist
 
 
-def xproto_base_def(model_name, base):
+def xproto_base_def(model_name, base, suffix='', suffix_list=[]):
     if (model_name=='XOSBase'):
         return '(models.Model, PlModelMixIn)'
     elif (not base):
         return ''
     else:
-        base = map(lambda s:s['name'], base)
-        return '(' + ','.join(base) + ')'
+        int_base = [i['name']+suffix for i in base if i['name'] in suffix_list]
+        ext_base = [i['name'] for i in base if i['name'] not in suffix_list]
+        return '(' + ','.join(int_base + ext_base) + ')'
 
 def xproto_first_non_empty(lst):
     for l in lst:
diff --git a/lib/xos-genx/xosgenx/targets/service.xtarget b/lib/xos-genx/xosgenx/targets/service.xtarget
index 80d90d6..5336f82 100644
--- a/lib/xos-genx/xosgenx/targets/service.xtarget
+++ b/lib/xos-genx/xosgenx/targets/service.xtarget
@@ -33,7 +33,7 @@
 {% endfor %}
 
 {% for m in proto.messages %}
-class {{ m.name }}{{ legacy_tag }}{{ xproto_base_def(m.name, m.bases) }}:
+class {{ m.name }}{{ legacy_tag }}{{ xproto_base_def(m.name, m.bases, legacy_tag, proto.message_names) }}:
   plural_name = "{{ xproto_pluralize(m) }}"
 
   KIND = {{ xproto_first_non_empty([m.options.kind, options.kind, options.name, "Set a kind in your xproto!"]) }}
