diff -u lyx-1.1.4fix3/src/lyx_gui.C lyx-1.1.4patched/src/lyx_gui.C
--- lyx-1.1.4fix3/src/lyx_gui.C	Tue Jan 25 15:21:47 2000
+++ lyx-1.1.4patched/src/lyx_gui.C	Sun May  7 05:59:49 2000
@@ -458,10 +458,15 @@
         for (n = 0; tex_fonts[n][0]; ++n) {
 	    fl_addto_choice(fd_form_document->choice_fonts, tex_fonts[n]);
 	}
-
+/*
 	fl_addto_choice(fd_form_document->choice_inputenc,
 			"default|latin1|latin2|latin5"
 			"|koi8-r|koi8-u|cp866|cp1251");
+*/
+        for (n = 0; tex_inputenc[n][0]; ++n) {
+	   fl_addto_choice(fd_form_document->choice_inputenc,
+					tex_inputenc[n]);
+	}
 
         for (n = 0; tex_graphics[n][0]; ++n) {
 	    fl_addto_choice(fd_form_document->choice_postscript_driver,
diff -u lyx-1.1.4fix3/src/lyxrc.C lyx-1.1.4patched/src/lyxrc.C
--- lyx-1.1.4fix3/src/lyxrc.C	Mon May  8 10:15:20 2000
+++ lyx-1.1.4patched/src/lyxrc.C	Sun May  7 06:39:06 2000
@@ -135,12 +135,16 @@
 	RC_PDF_TO_PS_COMMAND,
 	RC_DVI_TO_PS_COMMAND,
 	RC_DATE_INSERT_FORMAT,
+	RC_ADD_LANGUAGE,
+	RC_ADD_INPUTENC,
 	RC_LAST
 };
 
 
 static keyword_item lyxrcTags[] = {
 	{ "\\accept_compound", RC_ACCEPT_COMPOUND },
+	{ "\\add_input_encoding", RC_ADD_INPUTENC },
+	{ "\\add_language", RC_ADD_LANGUAGE },
 	{ "\\alternate_language", RC_ALT_LANG },
 	{ "\\ascii_linelen", RC_ASCII_LINELEN },
 	{ "\\ascii_roff_command", RC_ASCIIROFF_COMMAND },
@@ -921,9 +925,45 @@
 			if (lexrc.next())
 				date_insert_format = lexrc.GetString();
 			break;
+		case RC_ADD_LANGUAGE:
+			if (lexrc.next()) {
+			    int i;
+			    string s;
+			    char *b;
+			    for(i=0;tex_babel[i];i++) if(!tex_babel[i][0]) break; 
+			    if(tex_babel[i]) {
+			      s = lexrc.GetString(); b = new char[s.length()+1];
+			      s.copy(b,s.length(),0); b[s.length()]=0;
+			      tex_babel[i]=b; 
+			    }
+			    else {
+			      lyxerr << "No place to add more languages" << endl;
+			    };
+			};
+			break;
+		case RC_ADD_INPUTENC:
+			if (lexrc.next()) {
+			    int i;
+			    string s;
+			    char *b;
+			    for(i=0;tex_inputenc[i];i++) if(!tex_inputenc[i][0]) break; 
+			    if(tex_inputenc[i]) {
+			      s = lexrc.GetString(); b = new char[s.length()+1];
+			      s.copy(b,s.length(),0); b[s.length()]=0;
+			      tex_inputenc[i]=b; 
+			    }
+			    else {
+			      lyxerr << "No place to add more input encodings" << endl;
+			    };
+			};
+			break;
 		case RC_LAST: break; // this is just a dummy
 		}
 	}
+
+	int i;
+	for(i=0;tex_babel[i];i++) { }; tex_babel[i]=""; 
+	for(i=0;tex_inputenc[i];i++) { }; tex_inputenc[i]=""; 
 
 	return 0;
 }
diff -u lyx-1.1.4fix3/src/tex-strings.C lyx-1.1.4patched/src/tex-strings.C
--- lyx-1.1.4fix3/src/tex-strings.C	Mon Nov 22 14:20:16 1999
+++ lyx-1.1.4patched/src/tex-strings.C	Sun May  7 05:59:19 2000
@@ -50,7 +50,7 @@
 // 27 times in the object file. (Asger)
 
 ///
-char const * tex_babel[] = {"default", "afrikaans", "american",
+const char* tex_babel[] = {"default", "afrikaans", "american",
 			   "austrian", "bahasa", "brazil", "breton",
 			   "catalan", "croatian", "czech", "danish", "dutch", 
 			   "english", "esperanto", "estonian",
@@ -62,8 +62,16 @@
 			   "russian", "scottish",
 			   "spanish", "slovak", "slovene", "swedish",
 			   "turkish", "usorbian", "welsh",
-			   ""};
+			   "", "", "", "", "", "", "",
+			   "", "", "", "", "", "", "",
+			   "", "", "", "", "", "", 0 };
 
+const char* tex_inputenc[] = {"default", "latin1", "latin2",
+			      "latin5",  "koi8-r", "koi8-u",
+			      "cp866",   "cp1251",
+			      "", "", "", "", "", "", "",
+			      "", "", "", "", "", "", "",
+			      "", "", "", "", "", "", 0 };
 
 char const * tex_graphics[] = {"default", "dvips", "dvitops", "emtex",
 		      "ln", "oztex", "textures", "none", ""};
