diff --git a/skeletons/VisibleString.c b/skeletons/VisibleString.c
index 8c7d37c..8e361e7 100644
--- a/skeletons/VisibleString.c
+++ b/skeletons/VisibleString.c
@@ -8,11 +8,11 @@
 /*
  * VisibleString basic type description.
  */
-static ber_tlv_tag_t asn1_DEF_VisibleString_tags[] = {
+static ber_tlv_tag_t asn_DEF_VisibleString_tags[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (26 << 2)),	/* [UNIVERSAL 26] IMPLICIT ...*/
 	(ASN_TAG_CLASS_UNIVERSAL | (4 << 2))	/* ... OCTET STRING */
 };
-asn1_TYPE_descriptor_t asn1_DEF_VisibleString = {
+asn_TYPE_descriptor_t asn_DEF_VisibleString = {
 	"VisibleString",
 	OCTET_STRING_free,
 	OCTET_STRING_print_ascii,   /* ASCII subset */
@@ -22,41 +22,18 @@
 	0,				/* Not implemented yet */
 	OCTET_STRING_encode_xer_ascii,/* Implemented in terms of OCTET STRING */
 	0, /* Use generic outmost tag fetcher */
-	asn1_DEF_VisibleString_tags,
-	sizeof(asn1_DEF_VisibleString_tags)
-	  / sizeof(asn1_DEF_VisibleString_tags[0]) - 1,
-	asn1_DEF_VisibleString_tags,
-	sizeof(asn1_DEF_VisibleString_tags)
-	  / sizeof(asn1_DEF_VisibleString_tags[0]),
+	asn_DEF_VisibleString_tags,
+	sizeof(asn_DEF_VisibleString_tags)
+	  / sizeof(asn_DEF_VisibleString_tags[0]) - 1,
+	asn_DEF_VisibleString_tags,
+	sizeof(asn_DEF_VisibleString_tags)
+	  / sizeof(asn_DEF_VisibleString_tags[0]),
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
 
-
-/*
- * ISO646, ISOReg#6
- */
-static int _VisibleString_alphabet[256] = {
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 	/*   ! " # $ % & ' */
-0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 	/* ( ) * + , - . / */
-0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 	/* 0 1 2 3 4 5 6 7 */
-0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 	/* 8 9 : ; < = > ? */
-0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 	/* @ A B C D E F G */
-0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 	/* H I J K L M N O */
-0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 	/* P Q R S T U V W */
-0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 	/* X Y Z [ \ ] ^ _ */
-0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 	/* ` a b c d e f g */
-0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 	/* h i j k l m n o */
-0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 	/* p q r s t u v w */
-0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x00, 	/* x y z { | } ~   */
-};
-
 int
-VisibleString_constraint(asn1_TYPE_descriptor_t *td, const void *sptr,
+VisibleString_constraint(asn_TYPE_descriptor_t *td, const void *sptr,
 		asn_app_consume_bytes_f *app_errlog, void *app_key) {
 	const VisibleString_t *st = (const VisibleString_t *)sptr;
 
@@ -67,9 +44,11 @@
 		/*
 		 * Check the alphabet of the VisibleString.
 		 * ISO646, ISOReg#6
+		 * The alphabet is a subset of ASCII between the space
+		 * and "~" (tilde).
 		 */
 		for(; buf < end; buf++) {
-			if(!_VisibleString_alphabet[*buf]) {
+			if(*buf < 0x20 || *buf > 0x7e) {
 				_ASN_ERRLOG(app_errlog, app_key,
 					"%s: value byte %d (%d) "
 					"not in VisibleString alphabet (%s:%d)",
