Index: epan/dissectors/packet-ber.c
===================================================================
--- epan/dissectors/packet-ber.c	(revision 23387)
+++ epan/dissectors/packet-ber.c	(working copy)
@@ -3861,8 +3861,11 @@
 
 static int
 dissect_ber_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+	if (!actx->external.direct_reference ||
+	    !dissector_try_string(ber_oid_dissector_table, actx->external.direct_reference, tvb, actx->pinfo, tree)) {
+		offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
                                        &actx->external.octet_aligned);
+	}
 
   return offset;
 }
