diff --git a/asn1c/tests/data-70/data-70-55.in b/asn1c/tests/data-70/data-70-55.in
new file mode 100644
index 0000000..7be4ca5
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-55.in
@@ -0,0 +1,5 @@
+<PDU>
+	<set>
+		<roid>123.456.789.101112</roid>
+	</set>
+</PDU>
diff --git a/asn1c/tests/data-70/data-70-56.in b/asn1c/tests/data-70/data-70-56.in
new file mode 100644
index 0000000..7a7ba07
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-56.in
@@ -0,0 +1,5 @@
+<PDU>
+	<set>
+		<roid> 123.456.789.101112 </roid>
+	</set>
+</PDU>
diff --git a/asn1c/tests/data-70/data-70-57-D.in b/asn1c/tests/data-70/data-70-57-D.in
new file mode 100644
index 0000000..74da9b9
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-57-D.in
@@ -0,0 +1,5 @@
+<PDU>
+	<set>
+		<roid> <!--/--> 123.456.789.101112</roid>
+	</set>
+</PDU>
diff --git a/asn1c/tests/data-70/data-70-58-D.in b/asn1c/tests/data-70/data-70-58-D.in
new file mode 100644
index 0000000..252345d
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-58-D.in
@@ -0,0 +1,5 @@
+<PDU>
+	<set>
+		<roid>123.456.789.101112<!--/--></roid>
+	</set>
+</PDU>
diff --git a/asn1c/tests/data-70/data-70-59-D.in b/asn1c/tests/data-70/data-70-59-D.in
new file mode 100644
index 0000000..2d989d2
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-59-D.in
@@ -0,0 +1,5 @@
+<PDU>
+	<set>
+		<roid>123.456.789.101112<!--/--> </roid>
+	</set>
+</PDU>
diff --git a/asn1c/tests/data-70/data-70-60-D.in b/asn1c/tests/data-70/data-70-60-D.in
new file mode 100644
index 0000000..11be5d7
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-60-D.in
@@ -0,0 +1,5 @@
+<PDU>
+	<set>
+		<roid>123.456.789.101112 <!--/--></roid>
+	</set>
+</PDU>
diff --git a/asn1c/tests/data-70/data-70-61-D.in b/asn1c/tests/data-70/data-70-61-D.in
new file mode 100644
index 0000000..5c47c9f
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-61-D.in
@@ -0,0 +1,5 @@
+<PDU>
+	<set>
+		<roid>123.456.789.101112 <!--/--> </roid>
+	</set>
+</PDU>
diff --git a/asn1c/tests/data-70/data-70-62-D.in b/asn1c/tests/data-70/data-70-62-D.in
new file mode 100644
index 0000000..cb790d2
--- /dev/null
+++ b/asn1c/tests/data-70/data-70-62-D.in
@@ -0,0 +1,9 @@
+<PDU>
+	<set>
+		<roid>
+			<!-- This is a special comment -->
+			123.456.789.101112
+			<!-- This is a special comment too -->
+		</roid>
+	</set>
+</PDU>
diff --git a/skeletons/OBJECT_IDENTIFIER.c b/skeletons/OBJECT_IDENTIFIER.c
index c1f5884..2939f25 100644
--- a/skeletons/OBJECT_IDENTIFIER.c
+++ b/skeletons/OBJECT_IDENTIFIER.c
@@ -282,15 +282,13 @@
 	arcs_count = OBJECT_IDENTIFIER_parse_arcs(
 		(const char *)chunk_buf, chunk_size, arcs,
 			sizeof(s_arcs)/sizeof(s_arcs[0]), &endptr);
-	if(arcs_count <= 0) {
+	if(arcs_count < 0) {
 		/* Expecting more than zero arcs */
 		return XPBD_BROKEN_ENCODING;
+	} else if(arcs_count == 0) {
+		return XPBD_NOT_BODY_IGNORE;
 	}
-	if(endptr < chunk_end) {
-		/* We have a tail of unrecognized data. Check its safety. */
-		if(!xer_is_whitespace(endptr, chunk_end - endptr))
-			return XPBD_BROKEN_ENCODING;
-	}
+	assert(endptr == chunk_end);
 
 	if((size_t)arcs_count > sizeof(s_arcs)/sizeof(s_arcs[0])) {
 		arcs = (long *)MALLOC(arcs_count * sizeof(long));
@@ -745,16 +743,19 @@
 	/* Finalize last arc */
 	switch(state) {
 	case ST_LEADSPACE:
-	case ST_WAITDIGITS:
-		errno = EINVAL;
-		return -1;
+		return 0; /* No OID found in input data */
 	case ST_DIGITS:
 		_OID_CAPTURE_ARC(value_start, oid_text);
-		/* Fall through */
+		return arcs_count;
+	case ST_WAITDIGITS:
+		errno = EINVAL;	/* Broken OID */
+		return -1;
 	case ST_TAILSPACE:
-	default:
 		return arcs_count;
 	}
+
+	errno = EINVAL;	/* Broken OID */
+	return -1;
 }
 
 
diff --git a/skeletons/RELATIVE-OID.c b/skeletons/RELATIVE-OID.c
index 983fc09..4275c0a 100644
--- a/skeletons/RELATIVE-OID.c
+++ b/skeletons/RELATIVE-OID.c
@@ -106,14 +106,12 @@
 		(const char *)chunk_buf, chunk_size,
 		arcs, sizeof(s_arcs)/sizeof(s_arcs[0]), &endptr);
 	if(arcs_count < 0) {
-		/* Expecting at least zero arcs */
+		/* Expecting at least one arc arcs */
 		return XPBD_BROKEN_ENCODING;
+	} else if(arcs_count == 0) {
+		return XPBD_NOT_BODY_IGNORE;
 	}
-	if(endptr < chunk_end) {
-		/* We have a tail of unrecognized data. Check its safety. */
-		if(!xer_is_whitespace(endptr, chunk_end - endptr))
-			return XPBD_BROKEN_ENCODING;
-	}
+	assert(endptr == chunk_end);
 
 	if((size_t)arcs_count > sizeof(s_arcs)/sizeof(s_arcs[0])) {
 		arcs = (long *)MALLOC(arcs_count * sizeof(long));
