diff --git a/doc/sefun/iso2ascii b/doc/sefun/iso2ascii
deleted file mode 100644
index bd64d73..0000000
--- a/doc/sefun/iso2ascii
+++ /dev/null
@@ -1,32 +0,0 @@
-
-iso2ascii()
-***********
-
-
-FUNKTION
-========
-
-   public string iso2ascii( string str );
-
-
-ARGUMENTE
-=========
-
-   str
-     String, in welchem Zeichen ersetzt werden sollen.
-
-
-BESCHREIBUNG
-============
-
-   In dem String werden alle Nicht-ASCII-Zeichen durch ASCII-Zeichen
-   ersetzt, und zwar Umlaute in der bekannten Form und alle anderen
-   durch ein Fragezeichen.
-
-
-RUeCKGABEWERT
-=============
-
-   String mit ASCII-Zeichen.
-
-Last modified: Fri Jul  6 19:36:09 2001 by Patryn
diff --git a/secure/simul_efun/simul_efun.c b/secure/simul_efun/simul_efun.c
index d574bde..676c094 100644
--- a/secure/simul_efun/simul_efun.c
+++ b/secure/simul_efun/simul_efun.c
@@ -1749,15 +1749,6 @@
     return (int)ob->QueryProp(P_INT_LIGHT);
 }
 
-
-public string iso2ascii( string str )
-{
-    if ( !sizeof(str) )
-       return "";
-    return convert_charset(str, "ISO-8859-15", "ASCII//TRANSLIT");
-}
-
-
 public varargs string CountUp( string *s, string sep, string lastsep )
 {
     string ret;
diff --git a/secure/simul_efun/spare/simul_efun.c b/secure/simul_efun/spare/simul_efun.c
index d574bde..676c094 100644
--- a/secure/simul_efun/spare/simul_efun.c
+++ b/secure/simul_efun/spare/simul_efun.c
@@ -1749,15 +1749,6 @@
     return (int)ob->QueryProp(P_INT_LIGHT);
 }
 
-
-public string iso2ascii( string str )
-{
-    if ( !sizeof(str) )
-       return "";
-    return convert_charset(str, "ISO-8859-15", "ASCII//TRANSLIT");
-}
-
-
 public varargs string CountUp( string *s, string sep, string lastsep )
 {
     string ret;
