diff --git a/skeletons/tests/Makefile.am b/skeletons/tests/Makefile.am
index eb1f018..a58e469 100644
--- a/skeletons/tests/Makefile.am
+++ b/skeletons/tests/Makefile.am
@@ -5,6 +5,7 @@
 	check-length		\
 	check-OIDs		\
 	check-GeneralizedTime	\
+	check-UTF8String	\
 	check-UTCTime		\
 	check-INTEGER		\
 	check-REAL
diff --git a/skeletons/tests/Makefile.in b/skeletons/tests/Makefile.in
index 0587cec..835df71 100644
--- a/skeletons/tests/Makefile.in
+++ b/skeletons/tests/Makefile.in
@@ -13,7 +13,7 @@
 # PARTICULAR PURPOSE.
 
 @SET_MAKE@
-SOURCES = check-GeneralizedTime.c check-INTEGER.c check-OIDs.c check-REAL.c check-UTCTime.c check-ber_tlv_tag.c check-length.c
+SOURCES = check-GeneralizedTime.c check-INTEGER.c check-OIDs.c check-REAL.c check-UTCTime.c check-UTF8String.c check-ber_tlv_tag.c check-length.c
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -38,8 +38,8 @@
 host_triplet = @host@
 check_PROGRAMS = check-ber_tlv_tag$(EXEEXT) check-length$(EXEEXT) \
 	check-OIDs$(EXEEXT) check-GeneralizedTime$(EXEEXT) \
-	check-UTCTime$(EXEEXT) check-INTEGER$(EXEEXT) \
-	check-REAL$(EXEEXT)
+	check-UTF8String$(EXEEXT) check-UTCTime$(EXEEXT) \
+	check-INTEGER$(EXEEXT) check-REAL$(EXEEXT)
 subdir = skeletons/tests
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -69,6 +69,10 @@
 check_UTCTime_OBJECTS = check-UTCTime.$(OBJEXT)
 check_UTCTime_LDADD = $(LDADD)
 check_UTCTime_DEPENDENCIES =
+check_UTF8String_SOURCES = check-UTF8String.c
+check_UTF8String_OBJECTS = check-UTF8String.$(OBJEXT)
+check_UTF8String_LDADD = $(LDADD)
+check_UTF8String_DEPENDENCIES =
 check_ber_tlv_tag_SOURCES = check-ber_tlv_tag.c
 check_ber_tlv_tag_OBJECTS = check-ber_tlv_tag.$(OBJEXT)
 check_ber_tlv_tag_LDADD = $(LDADD)
@@ -85,6 +89,7 @@
 @AMDEP_TRUE@	./$(DEPDIR)/check-OIDs.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/check-REAL.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/check-UTCTime.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/check-UTF8String.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/check-ber_tlv_tag.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/check-length.Po
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
@@ -96,11 +101,11 @@
 LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = check-GeneralizedTime.c check-INTEGER.c check-OIDs.c \
-	check-REAL.c check-UTCTime.c check-ber_tlv_tag.c \
-	check-length.c
+	check-REAL.c check-UTCTime.c check-UTF8String.c \
+	check-ber_tlv_tag.c check-length.c
 DIST_SOURCES = check-GeneralizedTime.c check-INTEGER.c check-OIDs.c \
-	check-REAL.c check-UTCTime.c check-ber_tlv_tag.c \
-	check-length.c
+	check-REAL.c check-UTCTime.c check-UTF8String.c \
+	check-ber_tlv_tag.c check-length.c
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -271,6 +276,9 @@
 check-UTCTime$(EXEEXT): $(check_UTCTime_OBJECTS) $(check_UTCTime_DEPENDENCIES) 
 	@rm -f check-UTCTime$(EXEEXT)
 	$(LINK) $(check_UTCTime_LDFLAGS) $(check_UTCTime_OBJECTS) $(check_UTCTime_LDADD) $(LIBS)
+check-UTF8String$(EXEEXT): $(check_UTF8String_OBJECTS) $(check_UTF8String_DEPENDENCIES) 
+	@rm -f check-UTF8String$(EXEEXT)
+	$(LINK) $(check_UTF8String_LDFLAGS) $(check_UTF8String_OBJECTS) $(check_UTF8String_LDADD) $(LIBS)
 check-ber_tlv_tag$(EXEEXT): $(check_ber_tlv_tag_OBJECTS) $(check_ber_tlv_tag_DEPENDENCIES) 
 	@rm -f check-ber_tlv_tag$(EXEEXT)
 	$(LINK) $(check_ber_tlv_tag_LDFLAGS) $(check_ber_tlv_tag_OBJECTS) $(check_ber_tlv_tag_LDADD) $(LIBS)
@@ -289,6 +297,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check-OIDs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check-REAL.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check-UTCTime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check-UTF8String.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check-ber_tlv_tag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check-length.Po@am__quote@
 
diff --git a/skeletons/tests/check-UTF8String.c b/skeletons/tests/check-UTF8String.c
new file mode 100644
index 0000000..be8c273
--- /dev/null
+++ b/skeletons/tests/check-UTF8String.c
@@ -0,0 +1,84 @@
+#include <UTF8String.c>
+#include <OCTET_STRING.c>
+#include <ber_decoder.c>
+#include <ber_tlv_length.c>
+#include <ber_tlv_tag.c>
+#include <der_encoder.c>
+#include <constraints.c>
+#include <sys/time.h>
+
+static void
+check(int expect_length, char *buf, int buflen) {
+	UTF8String_t st;
+	int ret;
+
+	if(buflen < 0) buflen = strlen(buf);
+
+	st.buf = (uint8_t *)buf;
+	st.size = buflen;
+	printf("[");
+
+	for(ret = 0; ret < buflen; ret++)
+		printf("%c", buf[ret]);
+	ret = UTF8String_length(&st, 0, 0, 0);
+	printf("]: size=%d, expect=%d, got=%d\n",
+		buflen, expect_length, ret);
+	assert(ret == expect_length);
+}
+
+static int
+check_speed() {
+	int cycles = 1000000;
+	double start, stop;
+	struct timeval tv;
+	UTF8String_t st;
+	char long_test[] =
+		"a\303\237a\303\237a\303\237a\303\237"
+		"a\303\237a\303\237a\303\237a\303\237"
+		"a\303\237a\303\237a\303\237a\303\237"
+		"a\303\237a\303\237a\303\237a\303\237"
+		"a\303\237a\303\237a\303\237a\303\237";
+	int ret;
+	int i;
+
+	st.buf = long_test;
+	st.size = sizeof(long_test) - 1;
+
+	ret = UTF8String_length(&st, 0, 0, 0);
+	assert(ret == 40);
+	printf("Now wait a bit...\n");
+
+	gettimeofday(&tv, 0);
+	start = tv.tv_sec + tv.tv_usec / 1000000.0;
+	for(i = 0; i < cycles; i++) {
+		ret += UTF8String_length(&st, 0, 0, 0);
+	}
+	gettimeofday(&tv, 0);
+	stop = tv.tv_sec + tv.tv_usec / 1000000.0;
+
+	printf("%d cycles in %.3fms\n", cycles, stop - start);
+
+	return ret;
+}
+
+int
+main() {
+
+	check(0, "", 0);
+	check(1, "\0", 1);
+	check(-1, "\377", 1);
+	check(1, "a", 1);
+	check(2, "ab", 2);
+	check(3, "abc", 3);
+	assert(sizeof("a\303\237cd") == 6);
+	check(4, "a\303\237cd", 5);
+	check(-1, "a\303", 2);
+	check(-1, "a\370\200\200\200c", 5);
+	check(3, "a\370\201\200\201\257c", 7);
+	/* not yet check(-1, "a\370\200\200\200\257c", 7); */
+
+	check_speed();
+
+	return 0;
+}
+
