diff --git a/libasn1compiler/asn1c_C.c b/libasn1compiler/asn1c_C.c
index e5cd8dc..58d119f 100644
--- a/libasn1compiler/asn1c_C.c
+++ b/libasn1compiler/asn1c_C.c
@@ -1375,7 +1375,7 @@
 	&& etd_spec == ETD_NO_SPECIFICS
 	&& 0	/* This shortcut is incompatible with XER */
 	) {
-		char *type_name;
+		const char *type_name;
 		REDIR(OT_FUNC_DECLS);
 		type_name = asn1c_type_name(arg, expr, TNF_SAFE);
 		OUT("/* This type is equivalent to %s */\n", type_name);
@@ -2911,7 +2911,7 @@
 	struct asn1p_type_tag_s outmost_tag_s;
 	struct asn1p_type_tag_s *outmost_tag;
 	int complex_contents;
-	char *p;
+	const char *p;
 
     if(WITH_MODULE_NAMESPACE(
            expr->module, expr_ns,
@@ -3017,7 +3017,7 @@
 		if(arg->flags & A1C_NO_CONSTRAINTS) {
 			OUT("0,\t/* No check because of -fno-constraints */\n");
 		} else {
-			char *id = MKID(expr);
+			const char *id = MKID(expr);
 			if(expr->_anonymous_type
 					&& !strcmp(expr->Identifier, "Member"))
 				id = asn1c_type_name(arg, expr, TNF_SAFE);
@@ -3108,7 +3108,7 @@
 emit_type_DEF(arg_t *arg, asn1p_expr_t *expr, enum tvm_compat tv_mode, int tags_count, int all_tags_count, int elements_count, enum etd_spec spec) {
 	asn1p_expr_t *terminal;
 	int using_type_name = 0;
-	char *p = MKID(expr);
+	const char *p = MKID(expr);
 	char *p2 = (char *)0;
 
 	terminal = asn1f_find_terminal_type_ex(arg->asn, arg->ns, expr);
diff --git a/libasn1compiler/asn1c_constraint.c b/libasn1compiler/asn1c_constraint.c
index 9e2737b..a8054bb 100644
--- a/libasn1compiler/asn1c_constraint.c
+++ b/libasn1compiler/asn1c_constraint.c
@@ -92,7 +92,7 @@
 		break;
 	}
 	if(produce_st) {
-		char *tname = asn1c_type_name(arg, arg->expr, TNF_SAFE);
+		const char *tname = asn1c_type_name(arg, arg->expr, TNF_SAFE);
 		OUT("const %s_t *st = (const %s_t *)sptr;\n", tname, tname);
 	}
 
@@ -427,7 +427,7 @@
 emit_alphabet_check_loop(arg_t *arg, asn1cnst_range_t *range) {
 	asn1c_integer_t natural_stop;
 	asn1p_expr_t *terminal;
-	char *tname;
+	const char *tname;
 
 	terminal = asn1f_find_terminal_type_ex(arg->asn, arg->ns, arg->expr);
 	if(terminal) {
diff --git a/libasn1compiler/asn1c_misc.c b/libasn1compiler/asn1c_misc.c
index 0f66147..665b748 100644
--- a/libasn1compiler/asn1c_misc.c
+++ b/libasn1compiler/asn1c_misc.c
@@ -168,13 +168,13 @@
 	return storage;
 }
 
-char *
+const char *
 asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format) {
 	asn1p_expr_t *exprid = 0;
 	asn1p_expr_t *top_parent;
 	asn1p_expr_t *terminal = 0;
 	int stdname = 0;
-	char *typename;
+	const char *typename;
 
 	/* Rewind to the topmost parent expression */
 	if((top_parent = expr->parent_expr))
diff --git a/libasn1compiler/asn1c_misc.h b/libasn1compiler/asn1c_misc.h
index 63f3841..ff6d672 100644
--- a/libasn1compiler/asn1c_misc.h
+++ b/libasn1compiler/asn1c_misc.h
@@ -16,6 +16,8 @@
 
 /*
  * Return the type name of the specified expression.
+ * The returned string is a pointer to a statically allocated buffer which is
+ * going to be clobbered by the subsequent invocation of this function.
  */
 enum tnfmt {
 	TNF_UNMODIFIED	= 0x10,	/* Return unmodified type name */
@@ -24,7 +26,7 @@
 	TNF_SAFE	= 0x40, /* Replace unsafe characters with _ */
 	TNF_RSAFE	= 0x50,	/* Recursion-safe C type format */
 };
-char *asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format);
+const char *asn1c_type_name(arg_t *arg, asn1p_expr_t *expr, enum tnfmt _format);
 
 /*
  * Check whether the specified INTEGER or ENUMERATED type can be represented
