diff --git a/compiler2/Type_chk.cc b/compiler2/Type_chk.cc
index fc74f72ead7824ffbeb8a6c5412c52ed6fb3fb03..4a1b0278493d5c30e8c8225782283d79f9d4a552 100644
--- a/compiler2/Type_chk.cc
+++ b/compiler2/Type_chk.cc
@@ -3152,7 +3152,15 @@ void Type::chk_oer() {
       se_comps.clear();
       se_comps2.clear();
     }
+    // no break
     case T_SEQ_A: {
+      // These asn1 types are sequences but don't need any checking.
+      // It could screw up XER coding for example.
+      if (t->get_typename().find("CHARACTER STRING", 0) != t->get_typename().size() ||
+          t->get_typename().find("EMBEDDED PDV", 0) != t->get_typename().size() ||
+          t->get_typename().find("@EXTERNAL", 0) != t->get_typename().size()) {
+        break;
+      }
       oerattrib->extendable = t->u.secho.ctss->has_ellipsis();
       if (oerattrib->extendable) {
         oerattrib->nr_of_root_comps = t->u.secho.ctss->get_nof_root_comps();
diff --git a/compiler2/record.c b/compiler2/record.c
index 53333fec1080e96375f94ac8f02431b29d1fa92f..38f8fcf3561ec59245c84224d77f12c030befad4 100644
--- a/compiler2/record.c
+++ b/compiler2/record.c
@@ -4655,7 +4655,7 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
   if (oer_needed) {
     // OER encode, RT1
     src = mputprintf(src,
-      "int %s::OER_encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf) const\n"
+      "int %s::OER_encode(const TTCN_Typedescriptor_t&, TTCN_Buffer& p_buf) const\n"
       "{\n"
       "  if (!is_bound()) {\n" 
       "  TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND,\n"
diff --git a/regression_test/OER/OER.ttcn b/regression_test/OER/OER.ttcn
index 775f39a57a759f5128a809b932c31c428527b463..dfd8ea787dcbb5dc7cb3bcaacfeaeb4124dcc04a 100644
--- a/regression_test/OER/OER.ttcn
+++ b/regression_test/OER/OER.ttcn
@@ -2279,6 +2279,13 @@
  			setverdict(fail, "tc_sequence: ", match(er, erres));
  		}
 
+        er := { me := 1, me2 := 2 }
+        os := '8001010102020780020103'O;
+        erres := dec_ExtensionRecord(os);
+        if (er != erres) {
+            setverdict(fail, "tc_sequence: ", match(er, erres));
+        }
+
         var ExtensionRecord2 er2, erres2;
         er2 := {
             me := 1,