diff --git a/library/Native_FunctionDefs.cc b/library/Native_FunctionDefs.cc
index f6d5d1d..78ca4d1 100644
--- a/library/Native_FunctionDefs.cc
+++ b/library/Native_FunctionDefs.cc
@@ -16,6 +16,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
+#include <ctype.h>
 
 #include <Charstring.hh>
 #include <Octetstring.hh>
@@ -75,5 +76,34 @@
 	return CHARSTRING(str);
 }
 
+CHARSTRING f__str__tolower(const CHARSTRING& in)
+{
+	TTCN_Buffer ttcn_buffer(in);
+	TTCN_Buffer buf_out;
+	CHARSTRING out;
+	unsigned int i;
+
+	const char *in_str = (const char *)ttcn_buffer.get_data();
+	for (i = 0; i < strlen(in_str); i++)
+		buf_out.put_c((unsigned char) tolower(in_str[i]));
+	buf_out.get_string(out);
+	return out;
+}
+
+CHARSTRING f__str__toupper(const CHARSTRING& in)
+{
+	TTCN_Buffer ttcn_buffer(in);
+	TTCN_Buffer buf_out;
+	CHARSTRING out;
+	unsigned int i;
+
+	const char *in_str = (const char *)ttcn_buffer.get_data();
+	for (i = 0; i < strlen(in_str); i++)
+		buf_out.put_c((unsigned char) toupper(in_str[i]));
+	buf_out.get_string(out);
+	return out;
+}
+
+
 
 } // namespace
diff --git a/library/Native_Functions.ttcn b/library/Native_Functions.ttcn
index d59670a..c43004a 100644
--- a/library/Native_Functions.ttcn
+++ b/library/Native_Functions.ttcn
@@ -11,4 +11,10 @@
 	external function f_inet_ntoa(in octetstring oct) return charstring;
 	/* like inet_ntoa() but input is host byte order */
 	external function f_inet_hntoa(in octetstring oct) return charstring;
+
+	/* convert content of charstring to lower-case using tolower(3) */
+	external function f_str_tolower(in charstring input) return charstring;
+
+	/* convert content of charstring to upper-case using toupper(3) */
+	external function f_str_toupper(in charstring input) return charstring;
 }
