diff --git a/ChangeLog b/ChangeLog
index 4775efe23c470a38be6d958b91ed1b69ded87b6d..4129ed215b5bfc232ec8c8fc803e62ea2fcde59b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
-CVS code changes since last release -
+CVS code changes since last release -	
 - all:
+	- New regexp search feature by Bill Soudan.  New flags USE_REGEXP
+	  and REGEXP_COMPILED, new functions regexp_init, regexp_cleanup
+	  replace_line, replace_regexp in search.c, changes to
+	  search_init() and do_replace() and strstrwrapper().
 	- Made search functions & keys more like Pico.  Added goto line from  
 	  search and replace function, changed wording to "No Replace" instead
 	  of "To Search", "To Replace" to simply "Replace", and changed to
diff --git a/global.c b/global.c
index 4e89bf7b0a5cf2ca0b19a5911ecda1565cd07685..483c29c2aadf330b2e1f217e04c24689c4c9b6e6 100644
--- a/global.c
+++ b/global.c
@@ -76,6 +76,12 @@ shortcut writefile_list[WRITEFILE_LIST_LEN];
 shortcut help_list[HELP_LIST_LEN];
 shortcut spell_list[SPELL_LIST_LEN];
 
+/* Regular expressions */
+
+regex_t search_regexp;          /* Global to store compiled search regexp */
+regmatch_t regmatches[10];      /* Match positions for parenthetical
+                                   subexpressions, max of 10 */ 
+
 /* Initialize a struct *without* our lovely braces =( */
 void sc_init_one(shortcut * s, int key, char *desc, char *help, int alt,
 		 int misc1, int misc2, int view, int (*func) (void))
diff --git a/nano.1 b/nano.1
index 06d9c7237d6dadfbaa9c7398b0cde864b64fb1b3..65e3fd14d15f035decc2ea390226f29ac2835b3b 100644
--- a/nano.1
+++ b/nano.1
@@ -42,6 +42,10 @@ number".
 .B \-T (\-\-tabsize)
 Set the size (width) of a tab, if supported by your curses library.
 .TP
+.B \-R (\-\-regexp)
+Enable regular expression matching for search strings, as well as
+\\n subexpression replacement for replace strings.
+.TP
 .B \-V (\-\-version)
 Show the current version number and author.
 .TP
diff --git a/nano.c b/nano.c
index ef15ac7121038457e29b6f5f0c5c055860a73aaf..d6b43bf5c00dc28e96bf585de5c4dd410b60301d 100644
--- a/nano.c
+++ b/nano.c
@@ -312,6 +312,8 @@ void usage(void)
     printf(_
 	   (" -T 		--tabsize=[num]		Set width of a tab to num\n"));
 #endif
+    printf(_
+         (" -R		--regexp		Use regular expressions for search\n"));
     printf
 	(_
 	 (" -V 		--version		Print version information and exit\n"));
@@ -353,6 +355,7 @@ void usage(void)
 #ifdef HAVE_TABSIZE
     printf(_(" -T [num]	Set width of a tab to num\n"));
 #endif
+    printf(_(" -R		Use regular expressions for search\n"));
     printf(_(" -V 		Print version information and exit\n"));
     printf(_(" -c 		Constantly show cursor position\n"));
     printf(_(" -h 		Show this message\n"));
@@ -1528,6 +1531,7 @@ int main(int argc, char *argv[])
 #ifdef HAVE_GETOPT_LONG
     int option_index = 0;
     struct option long_options[] = {
+        {"regexp", 0, 0, 'R'},
 	{"version", 0, 0, 'V'},
 	{"const", 0, 0, 'c'},
 	{"suspend", 0, 0, 'z'},
@@ -1558,10 +1562,10 @@ int main(int argc, char *argv[])
 #endif
 
 #ifdef HAVE_GETOPT_LONG
-    while ((optchr = getopt_long(argc, argv, "?T:Vchilmpr:s:tvwxz",
+    while ((optchr = getopt_long(argc, argv, "?T:RVchilmpr:s:tvwxz",
 				 long_options, &option_index)) != EOF) {
 #else
-    while ((optchr = getopt(argc, argv, "h?T:Vcilmpr:s:tvwxz")) != EOF) {
+    while ((optchr = getopt(argc, argv, "h?T:RVcilmpr:s:tvwxz")) != EOF) {
 #endif
 
 	switch (optchr) {
@@ -1578,6 +1582,9 @@ int main(int argc, char *argv[])
 	    usage();		/* Oops!  You dont really have that option */
 	    finish(1);
 #endif
+	case 'R':
+	    SET(USE_REGEXP);
+	    break;
 	case 'V':
 	    version();
 	    exit(0);
diff --git a/nano.h b/nano.h
index 0346191290e2738a6d8b2fc91a68345fa8489dfd..802f97d8aaf83ce2157a7991c036a44f22acaf95 100644
--- a/nano.h
+++ b/nano.h
@@ -102,7 +102,8 @@ typedef struct shortcut {
 #define SAMELINEWRAP		(1<<11)
 #define VIEW_MODE		(1<<12)
 #define USE_MOUSE		(1<<13)
-
+#define USE_REGEXP              (1<<14)
+#define REGEXP_COMPILED         (1<<15)
 
 /* Control key sequences, chaning these would be very very bad */
 
diff --git a/po/cat-id-tbl.c b/po/cat-id-tbl.c
index ae51401ac8dcd9af11841e278595e505285190fd..b560aadb363af1519779689af85a2d2de3e37b7b 100644
--- a/po/cat-id-tbl.c
+++ b/po/cat-id-tbl.c
@@ -116,96 +116,100 @@ Usage: nano [GNU long option] [option] +LINE <file>\n\
 \n", 88},
   {"Option\t\tLong option\t\tMeaning\n", 89},
   {" -T \t\t--tabsize=[num]\t\tSet width of a tab to num\n", 90},
-  {" -V \t\t--version\t\tPrint version information and exit\n", 91},
-  {" -c \t\t--const\t\t\tConstantly show cursor position\n", 92},
-  {" -h \t\t--help\t\t\tShow this message\n", 93},
-  {" -i \t\t--autoindent\t\tAutomatically indent new lines\n", 94},
-  {" -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite.\n", 95},
-  {" -m \t\t--mouse\t\t\tEnable mouse\n", 96},
+  {" -R\t\t--regexp\t\tUse regular expressions for search\n", 91},
+  {" -V \t\t--version\t\tPrint version information and exit\n", 92},
+  {" -c \t\t--const\t\t\tConstantly show cursor position\n", 93},
+  {" -h \t\t--help\t\t\tShow this message\n", 94},
+  {" -i \t\t--autoindent\t\tAutomatically indent new lines\n", 95},
+  {" -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite.\n", 96},
+  {" -m \t\t--mouse\t\t\tEnable mouse\n", 97},
   {"\
- -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n", 97},
-  {" -p\t \t--pico\t\t\tMake bottom 2 lines more Pico-like\n", 98},
-  {" -s [prog] \t--speller=[prog]\tEnable alternate speller\n", 99},
-  {" -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n", 100},
-  {" -v \t\t--view\t\t\tView (read only) mode\n", 101},
-  {" -w \t\t--nowrap\t\tDon't wrap long lines\n", 102},
-  {" -x \t\t--nohelp\t\tDon't show help window\n", 103},
-  {" -z \t\t--suspend\t\tEnable suspend\n", 104},
-  {" +LINE\t\t\t\t\tStart at line number LINE\n", 105},
+ -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n", 98},
+  {" -p\t \t--pico\t\t\tMake bottom 2 lines more Pico-like\n", 99},
+  {" -s [prog] \t--speller=[prog]\tEnable alternate speller\n", 100},
+  {" -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n", 101},
+  {" -v \t\t--view\t\t\tView (read only) mode\n", 102},
+  {" -w \t\t--nowrap\t\tDon't wrap long lines\n", 103},
+  {" -x \t\t--nohelp\t\tDon't show help window\n", 104},
+  {" -z \t\t--suspend\t\tEnable suspend\n", 105},
+  {" +LINE\t\t\t\t\tStart at line number LINE\n", 106},
   {"\
 Usage: nano [option] +LINE <file>\n\
-\n", 106},
-  {"Option\t\tMeaning\n", 107},
-  {" -T [num]\tSet width of a tab to num\n", 108},
-  {" -V \t\tPrint version information and exit\n", 109},
-  {" -c \t\tConstantly show cursor position\n", 110},
-  {" -h \t\tShow this message\n", 111},
-  {" -i \t\tAutomatically indent new lines\n", 112},
-  {" -l \t\tDon't follow symbolic links, overwrite.\n", 113},
-  {" -m \t\tEnable mouse\n", 114},
-  {" -r [#cols] \tSet fill cols to (wrap lines at) #cols\n", 115},
-  {" -s [prog]  \tEnable alternate speller\n", 116},
-  {" -p \t\tMake bottom 2 lines more Pico-like\n", 117},
-  {" -t \t\tAuto save on exit, don't prompt\n", 118},
-  {" -v \t\tView (read only) mode\n", 119},
-  {" -w \t\tDon't wrap long lines\n", 120},
-  {" -x \t\tDon't show help window\n", 121},
-  {" -z \t\tEnable suspend\n", 122},
-  {" +LINE\t\tStart at line number LINE\n", 123},
-  {" nano version %s by Chris Allegretta (compiled %s, %s)\n", 124},
-  {" Email: nano@asty.org\tWeb: http://www.asty.org/nano\n", 125},
-  {"Mark Set", 126},
-  {"Mark UNset", 127},
-  {"check_wrap called with inptr->data=\"%s\"\n", 128},
-  {"current->data now = \"%s\"\n", 129},
-  {"After, data = \"%s\"\n", 130},
-  {"Error deleting tempfile, ack!", 131},
-  {"Could not create a temporary filename: %s", 132},
-  {"Could not invoke spell program \"%s\"", 133},
-  {"Could not invoke \"ispell\"", 134},
-  {"Finished checking spelling", 135},
-  {"Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? ", 136},
-  {"Cannot resize top win", 137},
-  {"Cannot move top win", 138},
-  {"Cannot resize edit win", 139},
-  {"Cannot move edit win", 140},
-  {"Cannot resize bottom win", 141},
-  {"Cannot move bottom win", 142},
-  {"Main: set up windows\n", 143},
-  {"Main: bottom win\n", 144},
-  {"Main: open file\n", 145},
-  {"I got Alt-[-%c! (%d)\n", 146},
-  {"I got Alt-%c! (%d)\n", 147},
-  {"Case Sensitive Search%s", 148},
-  {"Search%s", 149},
-  {"Search Cancelled", 150},
-  {"Search Wrapped", 151},
-  {"Replaced %d occurences", 152},
-  {"Replaced 1 occurence", 153},
-  {"Replace Cancelled", 154},
-  {"Replace with [%s]", 155},
-  {"Replace with", 156},
-  {"Replace this instance?", 157},
-  {"Enter line number", 158},
-  {"Aborted", 159},
-  {"Come on, be reasonable", 160},
-  {"Only %d lines available, skipping to last line", 161},
-  {"actual_x_from_start for xplus=%d returned %d\n", 162},
-  {"input '%c' (%d)\n", 163},
-  {"New Buffer", 164},
-  {"  File: ...", 165},
-  {"Modified", 166},
-  {"Moved to (%d, %d) in edit buffer\n", 167},
-  {"current->data = \"%s\"\n", 168},
-  {"I got \"%s\"\n", 169},
-  {"Yes", 170},
-  {"All", 171},
-  {"No", 172},
-  {"do_cursorpos: linepct = %f, bytepct = %f\n", 173},
-  {"line %d of %d (%.0f%%), character %d of %d (%.0f%%)", 174},
-  {"Dumping file buffer to stderr...\n", 175},
-  {"Dumping cutbuffer to stderr...\n", 176},
-  {"Dumping a buffer to stderr...\n", 177},
+\n", 107},
+  {"Option\t\tMeaning\n", 108},
+  {" -T [num]\tSet width of a tab to num\n", 109},
+  {" -R\t\tUse regular expressions for search\n", 110},
+  {" -V \t\tPrint version information and exit\n", 111},
+  {" -c \t\tConstantly show cursor position\n", 112},
+  {" -h \t\tShow this message\n", 113},
+  {" -i \t\tAutomatically indent new lines\n", 114},
+  {" -l \t\tDon't follow symbolic links, overwrite.\n", 115},
+  {" -m \t\tEnable mouse\n", 116},
+  {" -r [#cols] \tSet fill cols to (wrap lines at) #cols\n", 117},
+  {" -s [prog]  \tEnable alternate speller\n", 118},
+  {" -p \t\tMake bottom 2 lines more Pico-like\n", 119},
+  {" -t \t\tAuto save on exit, don't prompt\n", 120},
+  {" -v \t\tView (read only) mode\n", 121},
+  {" -w \t\tDon't wrap long lines\n", 122},
+  {" -x \t\tDon't show help window\n", 123},
+  {" -z \t\tEnable suspend\n", 124},
+  {" +LINE\t\tStart at line number LINE\n", 125},
+  {" nano version %s by Chris Allegretta (compiled %s, %s)\n", 126},
+  {" Email: nano@asty.org\tWeb: http://www.asty.org/nano\n", 127},
+  {"Mark Set", 128},
+  {"Mark UNset", 129},
+  {"check_wrap called with inptr->data=\"%s\"\n", 130},
+  {"current->data now = \"%s\"\n", 131},
+  {"After, data = \"%s\"\n", 132},
+  {"Error deleting tempfile, ack!", 133},
+  {"Could not create a temporary filename: %s", 134},
+  {"Could not invoke spell program \"%s\"", 135},
+  {"Could not invoke \"ispell\"", 136},
+  {"Finished checking spelling", 137},
+  {"Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? ", 138},
+  {"Cannot resize top win", 139},
+  {"Cannot move top win", 140},
+  {"Cannot resize edit win", 141},
+  {"Cannot move edit win", 142},
+  {"Cannot resize bottom win", 143},
+  {"Cannot move bottom win", 144},
+  {"Main: set up windows\n", 145},
+  {"Main: bottom win\n", 146},
+  {"Main: open file\n", 147},
+  {"I got Alt-[-%c! (%d)\n", 148},
+  {"I got Alt-%c! (%d)\n", 149},
+  {"Case Sensitive Regexp Search%s", 150},
+  {"Regexp Search%s", 151},
+  {"Case Sensitive Search%s", 152},
+  {"Search%s", 153},
+  {"Search Cancelled", 154},
+  {"Search Wrapped", 155},
+  {"Replaced %d occurences", 156},
+  {"Replaced 1 occurence", 157},
+  {"Replace Cancelled", 158},
+  {"Replace with [%s]", 159},
+  {"Replace with", 160},
+  {"Replace this instance?", 161},
+  {"Enter line number", 162},
+  {"Aborted", 163},
+  {"Come on, be reasonable", 164},
+  {"Only %d lines available, skipping to last line", 165},
+  {"actual_x_from_start for xplus=%d returned %d\n", 166},
+  {"input '%c' (%d)\n", 167},
+  {"New Buffer", 168},
+  {"  File: ...", 169},
+  {"Modified", 170},
+  {"Moved to (%d, %d) in edit buffer\n", 171},
+  {"current->data = \"%s\"\n", 172},
+  {"I got \"%s\"\n", 173},
+  {"Yes", 174},
+  {"All", 175},
+  {"No", 176},
+  {"do_cursorpos: linepct = %f, bytepct = %f\n", 177},
+  {"line %d of %d (%.0f%%), character %d of %d (%.0f%%)", 178},
+  {"Dumping file buffer to stderr...\n", 179},
+  {"Dumping cutbuffer to stderr...\n", 180},
+  {"Dumping a buffer to stderr...\n", 181},
 };
 
-int _msg_tbl_length = 177;
+int _msg_tbl_length = 181;
diff --git a/po/de.gmo b/po/de.gmo
index 2f4c56f8dabf4ddb873fb4715a798724f7a95f45..2b744132d5330a6424249f0c7d224a2a35620b02 100644
Binary files a/po/de.gmo and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
index dc0c430df30f56539a205ce6f99dda5c2bc83c35..913ecc407efcd21978c5bdc82afdad1ae8bbbf8d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: nano 0.9.11\n"
-"POT-Creation-Date: 2000-06-28 21:18-0400\n"
+"POT-Creation-Date: 2000-07-06 18:42-0400\n"
 "PO-Revision-Date: 2000-06-21 12:19+0200\n"
 "Last-Translator: Florian König <floki@bigfoot.com>\n"
 "Language-Team: German <floki@bigfoot.com>\n"
@@ -27,83 +27,83 @@ msgstr "Inhalt der Zwischenablage verworfen\n"
 msgid "read_line: not on first line and prev is NULL"
 msgstr "read_line: nicht in der ersten Zeile und prev ist NULL"
 
-#: files.c:180 files.c:193
+#: files.c:180 files.c:197
 #, c-format
 msgid "Read %d lines"
 msgstr "%d Zeilen gelesen"
 
-#: files.c:211 search.c:129 search.c:147
+#: files.c:215 search.c:129 search.c:147
 #, c-format
 msgid "\"%s\" not found"
 msgstr "\"%s\" nicht gefunden"
 
 #. We have a new file
-#: files.c:215
+#: files.c:219
 msgid "New File"
 msgstr "Neue Datei"
 
-#: files.c:224
+#: files.c:228
 #, c-format
 msgid "File \"%s\" is a directory"
 msgstr "Datei \"%s\" ist ein Verzeichnis"
 
-#: files.c:229
+#: files.c:233
 msgid "Reading File"
 msgstr "Lese Datei"
 
-#: files.c:242
+#: files.c:246
 msgid "File to insert [from ./] "
 msgstr "Datei zum Einfügen [von ./] "
 
-#: files.c:270 files.c:294 files.c:458 nano.c:1165
+#: files.c:271 files.c:295 files.c:462 nano.c:1130
 msgid "Cancelled"
 msgstr "Abgebrochen"
 
-#: files.c:306 files.c:322 files.c:334 files.c:351 files.c:357
+#: files.c:307 files.c:323 files.c:338 files.c:355 files.c:361
 #, c-format
 msgid "Could not open file for writing: %s"
 msgstr "Konnte nicht in Datei schreiben: %s"
 
-#: files.c:314
+#: files.c:315
 msgid "Could not open file: Path length exceeded."
 msgstr "Konnte Datei nicht öffnen: Pfad zu lang."
 
-#: files.c:339
+#: files.c:343
 #, c-format
 msgid "Wrote >%s\n"
 msgstr "Schrieb >%s\n"
 
-#: files.c:366
+#: files.c:370
 #, c-format
 msgid "Could not close %s: %s"
 msgstr "Konnte %s nicht schließen: %s"
 
 #. Try a rename??
-#: files.c:387 files.c:398 files.c:403
+#: files.c:391 files.c:402 files.c:407
 #, c-format
 msgid "Could not open %s for writing: %s"
 msgstr "Konnte nicht in %s schreiben: %s"
 
-#: files.c:409
+#: files.c:413
 #, c-format
 msgid "Could not set permissions %o on %s: %s"
 msgstr "Konnte Rechte %o für %s nicht setzen: %s"
 
-#: files.c:416
+#: files.c:420
 #, c-format
 msgid "Wrote %d lines"
 msgstr "%d Zeilen geschrieben"
 
-#: files.c:437
+#: files.c:441
 msgid "File Name to write"
 msgstr "Dateiname zum Speichern"
 
-#: files.c:442
+#: files.c:446
 #, c-format
 msgid "filename is %s"
 msgstr "Dateiname ist %s"
 
-#: files.c:447
+#: files.c:451
 msgid "File exists, OVERWRITE ?"
 msgstr "Datei exisitiert, ÜBERSCHREIBEN ?"
 
@@ -248,7 +248,7 @@ msgstr "Zu Zeile"
 msgid "Justify"
 msgstr "Ausrichten"
 
-#: global.c:169 global.c:240
+#: global.c:169 global.c:240 global.c:270
 msgid "Replace"
 msgstr "Ersetzen"
 
@@ -344,18 +344,12 @@ msgstr "Letzte Zeile"
 msgid "Case Sens"
 msgstr "GROSZ/klein"
 
-#: global.c:270
-#, fuzzy
-msgid "To Replace"
-msgstr "Ersetzen"
-
 #: global.c:276 global.c:295 global.c:305 global.c:321 global.c:325
-#: global.c:331 winio.c:969
+#: global.c:331 winio.c:963
 msgid "Cancel"
 msgstr "Abbrechen"
 
 #: global.c:289
-#, fuzzy
 msgid "No Replace"
 msgstr ""
 
@@ -590,90 +584,90 @@ msgstr "Markierung gesetzt"
 msgid "Mark UNset"
 msgstr "Markierung gelöscht"
 
-#: nano.c:847
+#: nano.c:857
 #, c-format
 msgid "check_wrap called with inptr->data=\"%s\"\n"
 msgstr "check_wrap aufgerufen mit inptr->data=\"%s\"\n"
 
-#: nano.c:925
+#: nano.c:917
 #, c-format
 msgid "current->data now = \"%s\"\n"
 msgstr "current->data jetzt = \"%s\"\n"
 
-#: nano.c:969
+#: nano.c:970
 #, c-format
 msgid "After, data = \"%s\"\n"
 msgstr "Nachher, data = \"%s\"\n"
 
-#: nano.c:1032
+#: nano.c:1040
 msgid "Error deleting tempfile, ack!"
 msgstr "Konnte temporäre Datei nicht löschen"
 
-#: nano.c:1045 nano.c:1095
+#: nano.c:1057
 #, c-format
 msgid "Could not create a temporary filename: %s"
 msgstr "Konnte keine temporäre Datei erzeugen: %s"
 
-#: nano.c:1067 nano.c:1117
+#: nano.c:1081
 #, c-format
 msgid "Could not invoke spell program \"%s\""
 msgstr "Konnte Rechtschreibprogramm \"%s\" nicht aufrufen"
 
 #. Why 32512? I dont know!
-#: nano.c:1073 nano.c:1123
+#: nano.c:1087
 msgid "Could not invoke \"ispell\""
 msgstr "Konnte \"ispell\" nicht aufrufen"
 
-#: nano.c:1085 nano.c:1135
+#: nano.c:1099
 msgid "Finished checking spelling"
 msgstr "Rechtschreibprüfung abgeschlossen"
 
-#: nano.c:1152
+#: nano.c:1117
 msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
 msgstr "Veränderten Puffer speichern (\"Nein\" verwirft die Änderungen) ? "
 
-#: nano.c:1275
+#: nano.c:1240
 msgid "Cannot resize top win"
 msgstr "Kann die Größe des oberen Fensters nicht verändern"
 
-#: nano.c:1277
+#: nano.c:1242
 msgid "Cannot move top win"
 msgstr "Kann oberes Fenster nicht verschieben"
 
-#: nano.c:1279
+#: nano.c:1244
 msgid "Cannot resize edit win"
 msgstr "Kann Größe des Bearbeitungsfensters nicht verändern"
 
-#: nano.c:1281
+#: nano.c:1246
 msgid "Cannot move edit win"
 msgstr "Kann Bearbeitungsfenster nicht verschieben"
 
-#: nano.c:1283
+#: nano.c:1248
 msgid "Cannot resize bottom win"
 msgstr "Kann Größe des unteren Fensters nicht verändern"
 
-#: nano.c:1285
+#: nano.c:1250
 msgid "Cannot move bottom win"
 msgstr "Kann unteres Fenster nicht verschieben"
 
-#: nano.c:1749
+#: nano.c:1705
 msgid "Main: set up windows\n"
 msgstr "Hauptprogramm: Fenster konfigurieren\n"
 
-#: nano.c:1771
+#: nano.c:1727
 msgid "Main: bottom win\n"
 msgstr "Hauptprogramm: unteres Fenster\n"
 
-#: nano.c:1777
+#: nano.c:1733
 msgid "Main: open file\n"
 msgstr "Hauptprogramm: Datei öffnen\n"
 
-#: nano.c:1850
+#: nano.c:1806
 #, c-format
 msgid "I got Alt-[-%c! (%d)\n"
 msgstr "Erhielt Alt-[-%c! (%d)\n"
 
-#: nano.c:1866
+#: nano.c:1822
 #, c-format
 msgid "I got Alt-%c! (%d)\n"
 msgstr "Erhielt Alt-%c! (%d)\n"
@@ -763,54 +757,58 @@ msgstr "  Datei: ..."
 msgid "Modified"
 msgstr "Verändert"
 
-#: winio.c:885
+#: winio.c:879
 #, c-format
 msgid "Moved to (%d, %d) in edit buffer\n"
 msgstr "Nach (%d, %d) im Bearbeitungspuffer verschoben\n"
 
-#: winio.c:896
+#: winio.c:890
 #, c-format
 msgid "current->data = \"%s\"\n"
 msgstr "current->data = \"%s\"\n"
 
-#: winio.c:939
+#: winio.c:933
 #, c-format
 msgid "I got \"%s\"\n"
 msgstr "Erhielt \"%s\"\n"
 
-#: winio.c:964
+#: winio.c:958
 msgid "Yes"
 msgstr "Ja"
 
-#: winio.c:966
+#: winio.c:960
 msgid "All"
 msgstr "Alle"
 
-#: winio.c:968
+#: winio.c:962
 msgid "No"
 msgstr "Nein"
 
-#: winio.c:1104
+#: winio.c:1098
 #, c-format
 msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
 msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
 
-#: winio.c:1108
+#: winio.c:1102
 msgid "line %d of %d (%.0f%%), character %d of %d (%.0f%%)"
 msgstr "Zeile %d von %d (%.0f%%), Zeichen %d von %d (%.0f%%)"
 
-#: winio.c:1232
+#: winio.c:1226
 msgid "Dumping file buffer to stderr...\n"
 msgstr "Gebe Datei Puffer nach stderr aus...\n"
 
-#: winio.c:1234
+#: winio.c:1228
 msgid "Dumping cutbuffer to stderr...\n"
 msgstr "Gebe Inhalt der Zwischenablage nach stderr aus...\n"
 
-#: winio.c:1236
+#: winio.c:1230
 msgid "Dumping a buffer to stderr...\n"
 msgstr "Gebe einen Puffer nach stderr aus...\n"
 
+#, fuzzy
+#~ msgid "To Replace"
+#~ msgstr "Ersetzen"
+
 #, fuzzy
 #~ msgid "To Search"
 #~ msgstr "Suche"
diff --git a/po/es.gmo b/po/es.gmo
index 9d21e2cdbd45fe88a41349673f6065e012008b0d..67855974bcd92b4b28ed84c499614eb2eb7bb9c8 100644
Binary files a/po/es.gmo and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
index c2e11212558729ce16334a2cac01686edeb9cf31..7bf4e16ba65d974dfe4a1f299c2880e4170d0ae9 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0.9.11\n"
-"POT-Creation-Date: 2000-06-28 21:18-0400\n"
+"POT-Creation-Date: 2000-07-06 18:42-0400\n"
 "PO-Revision-Date: 2000-06-20 02:56+0200\n"
 "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
 "Language-Team: Spanish <jordi@sindominio.net>\n"
@@ -27,83 +27,83 @@ msgstr "Nos hemos cargado el cutbuffer =)\n"
 msgid "read_line: not on first line and prev is NULL"
 msgstr "read_line: no estamos en la primera línea y la anterior es NULL"
 
-#: files.c:180 files.c:193
+#: files.c:180 files.c:197
 #, c-format
 msgid "Read %d lines"
 msgstr "%d líneas leídas"
 
-#: files.c:211 search.c:129 search.c:147
+#: files.c:215 search.c:129 search.c:147
 #, c-format
 msgid "\"%s\" not found"
 msgstr "\"%s\" no encontrado"
 
 #. We have a new file
-#: files.c:215
+#: files.c:219
 msgid "New File"
 msgstr "Nuevo Fichero"
 
-#: files.c:224
+#: files.c:228
 #, c-format
 msgid "File \"%s\" is a directory"
 msgstr "Fichero \"%s\" es un directorio"
 
-#: files.c:229
+#: files.c:233
 msgid "Reading File"
 msgstr "Leyendo Fichero"
 
-#: files.c:242
+#: files.c:246
 msgid "File to insert [from ./] "
 msgstr "Fichero a insertar [desde ./] "
 
-#: files.c:270 files.c:294 files.c:458 nano.c:1165
+#: files.c:271 files.c:295 files.c:462 nano.c:1130
 msgid "Cancelled"
 msgstr "Cancelado"
 
-#: files.c:306 files.c:322 files.c:334 files.c:351 files.c:357
+#: files.c:307 files.c:323 files.c:338 files.c:355 files.c:361
 #, c-format
 msgid "Could not open file for writing: %s"
 msgstr "No pude abrir el fichero para escribir: %s"
 
-#: files.c:314
+#: files.c:315
 msgid "Could not open file: Path length exceeded."
 msgstr "El fichero no pudo ser abierto: longitud del path excedida."
 
-#: files.c:339
+#: files.c:343
 #, c-format
 msgid "Wrote >%s\n"
 msgstr "Escribí >%s\n"
 
-#: files.c:366
+#: files.c:370
 #, c-format
 msgid "Could not close %s: %s"
 msgstr "No pude cerrar %s: %s"
 
 #. Try a rename??
-#: files.c:387 files.c:398 files.c:403
+#: files.c:391 files.c:402 files.c:407
 #, c-format
 msgid "Could not open %s for writing: %s"
 msgstr "No pude abrir %s para escribir: %s"
 
-#: files.c:409
+#: files.c:413
 #, c-format
 msgid "Could not set permissions %o on %s: %s"
 msgstr "No pude establecer permisos %o en %s: %s"
 
-#: files.c:416
+#: files.c:420
 #, c-format
 msgid "Wrote %d lines"
 msgstr "%d líneas escritas"
 
-#: files.c:437
+#: files.c:441
 msgid "File Name to write"
 msgstr "Nombre de Fichero a escribir"
 
-#: files.c:442
+#: files.c:446
 #, c-format
 msgid "filename is %s"
 msgstr "filename es %s"
 
-#: files.c:447
+#: files.c:451
 msgid "File exists, OVERWRITE ?"
 msgstr "El fichero existe, SOBREESCRIBIR ?"
 
@@ -247,7 +247,7 @@ msgstr "Ir a L
 msgid "Justify"
 msgstr "Justificar"
 
-#: global.c:169 global.c:240
+#: global.c:169 global.c:240 global.c:270
 msgid "Replace"
 msgstr "Reemplazar"
 
@@ -343,17 +343,12 @@ msgstr "
 msgid "Case Sens"
 msgstr "May/Min"
 
-#: global.c:270
-msgid "To Replace"
-msgstr "Reemplazar"
-
 #: global.c:276 global.c:295 global.c:305 global.c:321 global.c:325
-#: global.c:331 winio.c:969
+#: global.c:331 winio.c:963
 msgid "Cancel"
 msgstr "Cancelar"
 
 #: global.c:289
-#, fuzzy
 msgid "No Replace"
 msgstr ""
 
@@ -583,90 +578,90 @@ msgstr "Marca Establecida"
 msgid "Mark UNset"
 msgstr "Marca Borrada"
 
-#: nano.c:847
+#: nano.c:857
 #, c-format
 msgid "check_wrap called with inptr->data=\"%s\"\n"
 msgstr "check_wrap llamada con inptr->data=\"%s\"\n"
 
-#: nano.c:925
+#: nano.c:917
 #, c-format
 msgid "current->data now = \"%s\"\n"
 msgstr "current->data ahora = \"%d\"\n"
 
-#: nano.c:969
+#: nano.c:970
 #, c-format
 msgid "After, data = \"%s\"\n"
 msgstr "Después, data = \"%s\"\n"
 
-#: nano.c:1032
+#: nano.c:1040
 msgid "Error deleting tempfile, ack!"
 msgstr "Error borrando el fichero temporal, ouch!"
 
-#: nano.c:1045 nano.c:1095
+#: nano.c:1057
 #, c-format
 msgid "Could not create a temporary filename: %s"
 msgstr "No pude crear un fichero temporal: %s"
 
-#: nano.c:1067 nano.c:1117
+#: nano.c:1081
 #, c-format
 msgid "Could not invoke spell program \"%s\""
 msgstr "No se pudo llamar al corrector \"%s\""
 
 #. Why 32512? I dont know!
-#: nano.c:1073 nano.c:1123
+#: nano.c:1087
 msgid "Could not invoke \"ispell\""
 msgstr "No pude llamar a \"ispell\""
 
-#: nano.c:1085 nano.c:1135
+#: nano.c:1099
 msgid "Finished checking spelling"
 msgstr "Revisión de ortografía finalizada"
 
-#: nano.c:1152
+#: nano.c:1117
 msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
 msgstr "Salvar el buffer modificado (RESPONDER \"No\" DESTRUIRÁ LOS CAMBIOS) ?"
 
-#: nano.c:1275
+#: nano.c:1240
 msgid "Cannot resize top win"
 msgstr "No se puede cambiar el tamaño de la ventana superior"
 
-#: nano.c:1277
+#: nano.c:1242
 msgid "Cannot move top win"
 msgstr "No se puede mover la ventana superior"
 
-#: nano.c:1279
+#: nano.c:1244
 msgid "Cannot resize edit win"
 msgstr "No se puede cambiar el tamaño de la ventana de edición"
 
-#: nano.c:1281
+#: nano.c:1246
 msgid "Cannot move edit win"
 msgstr "No se puede mover la ventana de edición"
 
-#: nano.c:1283
+#: nano.c:1248
 msgid "Cannot resize bottom win"
 msgstr "No se puede cambiar el tamaño de la ventana inferior"
 
-#: nano.c:1285
+#: nano.c:1250
 msgid "Cannot move bottom win"
 msgstr "No se puede mover la ventana inferior"
 
-#: nano.c:1749
+#: nano.c:1705
 msgid "Main: set up windows\n"
 msgstr "Main: configurar las ventanas\n"
 
-#: nano.c:1771
+#: nano.c:1727
 msgid "Main: bottom win\n"
 msgstr "Main: ventana inferior\n"
 
-#: nano.c:1777
+#: nano.c:1733
 msgid "Main: open file\n"
 msgstr "Main: abrir fichero\n"
 
-#: nano.c:1850
+#: nano.c:1806
 #, c-format
 msgid "I got Alt-[-%c! (%d)\n"
 msgstr "Pillé Alt-[-%c! (%d)\n"
 
-#: nano.c:1866
+#: nano.c:1822
 #, c-format
 msgid "I got Alt-%c! (%d)\n"
 msgstr "Pillé Alt-%c! (%d)\n"
@@ -756,54 +751,57 @@ msgstr "Fichero: ..."
 msgid "Modified"
 msgstr "Modificado"
 
-#: winio.c:885
+#: winio.c:879
 #, c-format
 msgid "Moved to (%d, %d) in edit buffer\n"
 msgstr "Moviendo a (%d, %d) en buffer de edición\n"
 
-#: winio.c:896
+#: winio.c:890
 #, c-format
 msgid "current->data = \"%s\"\n"
 msgstr "current->data = \"%s\"\n"
 
-#: winio.c:939
+#: winio.c:933
 #, c-format
 msgid "I got \"%s\"\n"
 msgstr "Pillé \"%s\"\n"
 
-#: winio.c:964
+#: winio.c:958
 msgid "Yes"
 msgstr "Sí"
 
-#: winio.c:966
+#: winio.c:960
 msgid "All"
 msgstr "Todas"
 
-#: winio.c:968
+#: winio.c:962
 msgid "No"
 msgstr "No"
 
-#: winio.c:1104
+#: winio.c:1098
 #, c-format
 msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
 msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
 
-#: winio.c:1108
+#: winio.c:1102
 msgid "line %d of %d (%.0f%%), character %d of %d (%.0f%%)"
 msgstr "línea %d de %d (%.0f%%), carácter %d de %d (%.0f%%)"
 
-#: winio.c:1232
+#: winio.c:1226
 msgid "Dumping file buffer to stderr...\n"
 msgstr "Volcando buffer de fichero a stderr...\n"
 
-#: winio.c:1234
+#: winio.c:1228
 msgid "Dumping cutbuffer to stderr...\n"
 msgstr "Volcando el cutbuffer a stderr...\n"
 
-#: winio.c:1236
+#: winio.c:1230
 msgid "Dumping a buffer to stderr...\n"
 msgstr "Volcando un buffer a stderr...\n"
 
+#~ msgid "To Replace"
+#~ msgstr "Reemplazar"
+
 #~ msgid "To Search"
 #~ msgstr "Buscar"
 
diff --git a/po/fi.gmo b/po/fi.gmo
index 36cb8b07788b17876017beccdf46552e3586fabe..1a1c60eed430712e16123d90be901939cc74f656 100644
Binary files a/po/fi.gmo and b/po/fi.gmo differ
diff --git a/po/fi.po b/po/fi.po
index 1a37cace0b76906607cb9890b5da55a19d077058..1286259af6180b8b1ac7d68f38aa34515abaafb9 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: nano 0.9.11\n"
-"POT-Creation-Date: 2000-06-28 21:18-0400\n"
+"POT-Creation-Date: 2000-07-06 18:42-0400\n"
 "PO-Revision-Date: 2000-06-21 23:08+03:00\n"
 "Last-Translator: Pauli Virtanen <pauli.virtanen@saunalahti.fi>\n"
 "Language-Team: Finnish <fi@li.org>\n"
@@ -26,83 +26,83 @@ msgstr "Leiketila katosi =)\n"
 msgid "read_line: not on first line and prev is NULL"
 msgstr "read_line: ei ensimmäisellä rivillä ja prev on NULL"
 
-#: files.c:180 files.c:193
+#: files.c:180 files.c:197
 #, c-format
 msgid "Read %d lines"
 msgstr "%d riviä luettu"
 
-#: files.c:211 search.c:129 search.c:147
+#: files.c:215 search.c:129 search.c:147
 #, c-format
 msgid "\"%s\" not found"
 msgstr "Tiedostoa \"%s\" ei ole"
 
 #. We have a new file
-#: files.c:215
+#: files.c:219
 msgid "New File"
 msgstr "Uusi tiedosto"
 
-#: files.c:224
+#: files.c:228
 #, c-format
 msgid "File \"%s\" is a directory"
 msgstr "\"%s\" on hakemisto"
 
-#: files.c:229
+#: files.c:233
 msgid "Reading File"
 msgstr "Tiedostoa luetaan"
 
-#: files.c:242
+#: files.c:246
 msgid "File to insert [from ./] "
 msgstr "Lisättävä tiedosto [hakemistossa ./]"
 
-#: files.c:270 files.c:294 files.c:458 nano.c:1165
+#: files.c:271 files.c:295 files.c:462 nano.c:1130
 msgid "Cancelled"
 msgstr "Peruttu"
 
-#: files.c:306 files.c:322 files.c:334 files.c:351 files.c:357
+#: files.c:307 files.c:323 files.c:338 files.c:355 files.c:361
 #, c-format
 msgid "Could not open file for writing: %s"
 msgstr "Tiedostoa ei voitu avata luettavaksi: %s"
 
-#: files.c:314
+#: files.c:315
 msgid "Could not open file: Path length exceeded."
 msgstr "Tiedostoa ei voitu avata: liian pitkä tiedostonnimi."
 
-#: files.c:339
+#: files.c:343
 #, c-format
 msgid "Wrote >%s\n"
 msgstr "Kirjoitettu: >%s\n"
 
-#: files.c:366
+#: files.c:370
 #, c-format
 msgid "Could not close %s: %s"
 msgstr "Tiedosto %s ei sulkeutunut: %s"
 
 #. Try a rename??
-#: files.c:387 files.c:398 files.c:403
+#: files.c:391 files.c:402 files.c:407
 #, c-format
 msgid "Could not open %s for writing: %s"
 msgstr "Tiedostoa %s ei voitu avata kirjoitettavaksi: %s"
 
-#: files.c:409
+#: files.c:413
 #, c-format
 msgid "Could not set permissions %o on %s: %s"
 msgstr "Oikeuksia %o ei voitu asettaa tiedostolle %s: %s"
 
-#: files.c:416
+#: files.c:420
 #, c-format
 msgid "Wrote %d lines"
 msgstr "%d riviä kirjoitettu"
 
-#: files.c:437
+#: files.c:441
 msgid "File Name to write"
 msgstr "Kirjoitettavan tiedoston nimi"
 
-#: files.c:442
+#: files.c:446
 #, c-format
 msgid "filename is %s"
 msgstr "tiedoston nimi on %s"
 
-#: files.c:447
+#: files.c:451
 msgid "File exists, OVERWRITE ?"
 msgstr "Tiedosto on jo olemassa, korvataanko?"
 
@@ -246,7 +246,7 @@ msgstr "Siirry"
 msgid "Justify"
 msgstr "Tasaa"
 
-#: global.c:169 global.c:240
+#: global.c:169 global.c:240 global.c:270
 msgid "Replace"
 msgstr "Korvaa"
 
@@ -342,17 +342,12 @@ msgstr "Viim. rivi"
 msgid "Case Sens"
 msgstr "Kirj. koko"
 
-#: global.c:270
-msgid "To Replace"
-msgstr "Korvattava"
-
 #: global.c:276 global.c:295 global.c:305 global.c:321 global.c:325
-#: global.c:331 winio.c:969
+#: global.c:331 winio.c:963
 msgid "Cancel"
 msgstr "Peru"
 
 #: global.c:289
-#, fuzzy
 msgid "No Replace"
 msgstr ""
 
@@ -582,90 +577,90 @@ msgstr "Teksti merkitty"
 msgid "Mark UNset"
 msgstr "Merkintä poistettu"
 
-#: nano.c:847
+#: nano.c:857
 #, c-format
 msgid "check_wrap called with inptr->data=\"%s\"\n"
 msgstr "check_wrap -funktion parametri inptr->data=\"%s\"\n"
 
-#: nano.c:925
+#: nano.c:917
 #, c-format
 msgid "current->data now = \"%s\"\n"
 msgstr "current->data nyt = \"%s\"\n"
 
-#: nano.c:969
+#: nano.c:970
 #, c-format
 msgid "After, data = \"%s\"\n"
 msgstr "Jälkeenpäin, data = \"%s\"\n"
 
-#: nano.c:1032
+#: nano.c:1040
 msgid "Error deleting tempfile, ack!"
 msgstr "Väliaikaistiedostoa poistettaessa tapahtui virhe."
 
-#: nano.c:1045 nano.c:1095
+#: nano.c:1057
 #, c-format
 msgid "Could not create a temporary filename: %s"
 msgstr "Väliaikaista tiedostonnimeä ei voitu luoda: %s"
 
-#: nano.c:1067 nano.c:1117
+#: nano.c:1081
 #, c-format
 msgid "Could not invoke spell program \"%s\""
 msgstr "Oikoluinta \"%s\" ei voitu käynnistää"
 
 #. Why 32512? I dont know!
-#: nano.c:1073 nano.c:1123
+#: nano.c:1087
 msgid "Could not invoke \"ispell\""
 msgstr "\"ispell\" -ohjelmaa ei voitu käynnistää"
 
-#: nano.c:1085 nano.c:1135
+#: nano.c:1099
 msgid "Finished checking spelling"
 msgstr "Oikoluku on valmis"
 
-#: nano.c:1152
+#: nano.c:1117
 msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
 msgstr "Tallenna muutettu teksti (Muutokset häviävät, jos vastaat \"ei\") ? "
 
-#: nano.c:1275
+#: nano.c:1240
 msgid "Cannot resize top win"
 msgstr "Yläikkunan kokoa ei voi muuttaa"
 
-#: nano.c:1277
+#: nano.c:1242
 msgid "Cannot move top win"
 msgstr "Yläikkunaa ei voi siirtää"
 
-#: nano.c:1279
+#: nano.c:1244
 msgid "Cannot resize edit win"
 msgstr "Muokkausikkunan kokoa ei voi muuttaa"
 
-#: nano.c:1281
+#: nano.c:1246
 msgid "Cannot move edit win"
 msgstr "Muokkausikkunaa ei voi siirtää"
 
-#: nano.c:1283
+#: nano.c:1248
 msgid "Cannot resize bottom win"
 msgstr "Alaikkunan kokoa ei voi muuttaa"
 
-#: nano.c:1285
+#: nano.c:1250
 msgid "Cannot move bottom win"
 msgstr "Alaikkunaa ei voi siirtää"
 
-#: nano.c:1749
+#: nano.c:1705
 msgid "Main: set up windows\n"
 msgstr "Päätila: ikkunoiden asettelu\n"
 
-#: nano.c:1771
+#: nano.c:1727
 msgid "Main: bottom win\n"
 msgstr "Päätila: alaikkuna\n"
 
-#: nano.c:1777
+#: nano.c:1733
 msgid "Main: open file\n"
 msgstr "Päätila: avaa tiedosto\n"
 
-#: nano.c:1850
+#: nano.c:1806
 #, c-format
 msgid "I got Alt-[-%c! (%d)\n"
 msgstr "Vastaanotettu Alt-[-%c! (%d)\n"
 
-#: nano.c:1866
+#: nano.c:1822
 #, c-format
 msgid "I got Alt-%c! (%d)\n"
 msgstr "Vastaanotettu Alt-%c! (%d)\n"
@@ -755,54 +750,57 @@ msgstr "  Tiedosto: ..."
 msgid "Modified"
 msgstr "Muokattu"
 
-#: winio.c:885
+#: winio.c:879
 #, c-format
 msgid "Moved to (%d, %d) in edit buffer\n"
 msgstr "Kohtaan (%d,%d) siirrytty muokkausruudussa\n"
 
-#: winio.c:896
+#: winio.c:890
 #, c-format
 msgid "current->data = \"%s\"\n"
 msgstr "current->data = \"%s\"\n"
 
-#: winio.c:939
+#: winio.c:933
 #, c-format
 msgid "I got \"%s\"\n"
 msgstr "Saatiin \"%s\"\n"
 
-#: winio.c:964
+#: winio.c:958
 msgid "Yes"
 msgstr "Kyllä"
 
-#: winio.c:966
+#: winio.c:960
 msgid "All"
 msgstr "Kaikki"
 
-#: winio.c:968
+#: winio.c:962
 msgid "No"
 msgstr "Ei"
 
-#: winio.c:1104
+#: winio.c:1098
 #, c-format
 msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
 msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
 
-#: winio.c:1108
+#: winio.c:1102
 msgid "line %d of %d (%.0f%%), character %d of %d (%.0f%%)"
 msgstr "rivi %d/%d (%.0f%%), merkki %d/%d (%.0f%%)"
 
-#: winio.c:1232
+#: winio.c:1226
 msgid "Dumping file buffer to stderr...\n"
 msgstr "Syötetään tiedosto stderriin...\n"
 
-#: winio.c:1234
+#: winio.c:1228
 msgid "Dumping cutbuffer to stderr...\n"
 msgstr "Syötetään leiketila stderriin...\n"
 
-#: winio.c:1236
+#: winio.c:1230
 msgid "Dumping a buffer to stderr...\n"
 msgstr "Syötetään teksti stderriin...\n"
 
+#~ msgid "To Replace"
+#~ msgstr "Korvattava"
+
 #~ msgid "To Search"
 #~ msgstr "Etsittävä"
 
diff --git a/po/fr.po b/po/fr.po
index 83d12457023e7891284a3bcc34b11fd65db86795..6d227a311ed9c50a5718971477f7040b48b88580 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0.8.9\n"
-"POT-Creation-Date: 2000-06-28 21:18-0400\n"
+"POT-Creation-Date: 2000-07-06 18:42-0400\n"
 "PO-Revision-Date: 2000-03-24 01:32+0100\n"
 "Last-Translator: Pierre Tane <tanep@bigfoot.com>\n"
 "Language-Team: French <LL@li.org>\n"
@@ -29,83 +29,83 @@ msgstr ""
 "read_line: la position actuelle n'est pas la première ligne et la précédente "
 "est NULL"
 
-#: files.c:180 files.c:193
+#: files.c:180 files.c:197
 #, c-format
 msgid "Read %d lines"
 msgstr "%d lignes lues"
 
-#: files.c:211 search.c:129 search.c:147
+#: files.c:215 search.c:129 search.c:147
 #, c-format
 msgid "\"%s\" not found"
 msgstr "\"%s\" non trouvé"
 
 #. We have a new file
-#: files.c:215
+#: files.c:219
 msgid "New File"
 msgstr "Nouveau fichier"
 
-#: files.c:224
+#: files.c:228
 #, c-format
 msgid "File \"%s\" is a directory"
 msgstr "Le fichier \"%s\" est un répertoire"
 
-#: files.c:229
+#: files.c:233
 msgid "Reading File"
 msgstr "Lecture du fichier"
 
-#: files.c:242
+#: files.c:246
 msgid "File to insert [from ./] "
 msgstr "Fichier à insérer [depuis ./] "
 
-#: files.c:270 files.c:294 files.c:458 nano.c:1165
+#: files.c:271 files.c:295 files.c:462 nano.c:1130
 msgid "Cancelled"
 msgstr "Annulé"
 
-#: files.c:306 files.c:322 files.c:334 files.c:351 files.c:357
+#: files.c:307 files.c:323 files.c:338 files.c:355 files.c:361
 #, c-format
 msgid "Could not open file for writing: %s"
 msgstr "Impossible d'ouvrir le fichier en écriture: %s"
 
-#: files.c:314
+#: files.c:315
 msgid "Could not open file: Path length exceeded."
 msgstr "Impossible d'ouvrir le fichier: la longueur du chemin a été dépassée"
 
-#: files.c:339
+#: files.c:343
 #, c-format
 msgid "Wrote >%s\n"
 msgstr "Écrit >%s\n"
 
-#: files.c:366
+#: files.c:370
 #, c-format
 msgid "Could not close %s: %s"
 msgstr "Impossible de fermer %s: %s"
 
 #. Try a rename??
-#: files.c:387 files.c:398 files.c:403
+#: files.c:391 files.c:402 files.c:407
 #, c-format
 msgid "Could not open %s for writing: %s"
 msgstr "Impossible d'ouvrir %s en écriture: %s"
 
-#: files.c:409
+#: files.c:413
 #, c-format
 msgid "Could not set permissions %o on %s: %s"
 msgstr "Impossible de donner les permissions %o à %s: %s"
 
-#: files.c:416
+#: files.c:420
 #, c-format
 msgid "Wrote %d lines"
 msgstr "%d lignes écrites"
 
-#: files.c:437
+#: files.c:441
 msgid "File Name to write"
 msgstr "Nom du fichier dans lequel écrire"
 
-#: files.c:442
+#: files.c:446
 #, c-format
 msgid "filename is %s"
 msgstr "Le nom du fichier est %s"
 
-#: files.c:447
+#: files.c:451
 msgid "File exists, OVERWRITE ?"
 msgstr ""
 
@@ -250,7 +250,7 @@ msgstr ""
 msgid "Justify"
 msgstr ""
 
-#: global.c:169 global.c:240
+#: global.c:169 global.c:240 global.c:270
 #, fuzzy
 msgid "Replace"
 msgstr "Rempacer par"
@@ -349,18 +349,12 @@ msgstr ""
 msgid "Case Sens"
 msgstr ""
 
-#: global.c:270
-#, fuzzy
-msgid "To Replace"
-msgstr "Rempacer par"
-
 #: global.c:276 global.c:295 global.c:305 global.c:321 global.c:325
-#: global.c:331 winio.c:969
+#: global.c:331 winio.c:963
 msgid "Cancel"
 msgstr "Annuler"
 
 #: global.c:289
-#, fuzzy
 msgid "No Replace"
 msgstr ""
 
@@ -582,90 +576,90 @@ msgstr "Marque enregistr
 msgid "Mark UNset"
 msgstr "Marque effacée"
 
-#: nano.c:847
+#: nano.c:857
 #, c-format
 msgid "check_wrap called with inptr->data=\"%s\"\n"
 msgstr "check_wrap appelée avec inptr->data=\"%s\"\n"
 
-#: nano.c:925
+#: nano.c:917
 #, c-format
 msgid "current->data now = \"%s\"\n"
 msgstr "current->data vaut maintenant \"%s\"\n"
 
-#: nano.c:969
+#: nano.c:970
 #, c-format
 msgid "After, data = \"%s\"\n"
 msgstr "Après, data = \"%s\"\n"
 
-#: nano.c:1032
+#: nano.c:1040
 msgid "Error deleting tempfile, ack!"
 msgstr "Erreur lors de l'effacement du fichier temporaire, zut!"
 
-#: nano.c:1045 nano.c:1095
+#: nano.c:1057
 #, c-format
 msgid "Could not create a temporary filename: %s"
 msgstr "Impossible de créer un nom de fichier temporaire: %s"
 
-#: nano.c:1067 nano.c:1117
+#: nano.c:1081
 #, c-format
 msgid "Could not invoke spell program \"%s\""
 msgstr "Impossible d'invoquer le programme spell \"%s\""
 
 #. Why 32512? I dont know!
-#: nano.c:1073 nano.c:1123
+#: nano.c:1087
 msgid "Could not invoke \"ispell\""
 msgstr "Impossible d'invoquer \"ispell\""
 
-#: nano.c:1085 nano.c:1135
+#: nano.c:1099
 msgid "Finished checking spelling"
 msgstr "Vérification orthographique terminée"
 
-#: nano.c:1152
+#: nano.c:1117
 msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
 msgstr "Sauver le buffer modifié (RÉPONDRE \"No\" EFFACERA LES CHANGEMENTS"
 
-#: nano.c:1275
+#: nano.c:1240
 msgid "Cannot resize top win"
 msgstr "Impossible de redimensionner la fenêtre du haut"
 
-#: nano.c:1277
+#: nano.c:1242
 msgid "Cannot move top win"
 msgstr "Impossible de bouger la fenêtre du haut"
 
-#: nano.c:1279
+#: nano.c:1244
 msgid "Cannot resize edit win"
 msgstr "Impossible de redimensionner la fenêtre d'édition"
 
-#: nano.c:1281
+#: nano.c:1246
 msgid "Cannot move edit win"
 msgstr "Impossible de bouger la fenêtre d'édition"
 
-#: nano.c:1283
+#: nano.c:1248
 msgid "Cannot resize bottom win"
 msgstr "Impossible de redimensionner la fenêtre du bas"
 
-#: nano.c:1285
+#: nano.c:1250
 msgid "Cannot move bottom win"
 msgstr "Impossible de bouger la fenêtre du bas"
 
-#: nano.c:1749
+#: nano.c:1705
 msgid "Main: set up windows\n"
 msgstr "Main: configuration des fenêtres\n"
 
-#: nano.c:1771
+#: nano.c:1727
 msgid "Main: bottom win\n"
 msgstr "Main: fenêtre du bas\n"
 
-#: nano.c:1777
+#: nano.c:1733
 msgid "Main: open file\n"
 msgstr "Main: ouvrir fichier\n"
 
-#: nano.c:1850
+#: nano.c:1806
 #, c-format
 msgid "I got Alt-[-%c! (%d)\n"
 msgstr "J'ai reçu Alt-[-%c! (%d)\n"
 
-#: nano.c:1866
+#: nano.c:1822
 #, c-format
 msgid "I got Alt-%c! (%d)\n"
 msgstr "J'ai reçu Alt-%c! (%d)\n"
@@ -755,54 +749,58 @@ msgstr "  Fichier: ..."
 msgid "Modified"
 msgstr "Modifié"
 
-#: winio.c:885
+#: winio.c:879
 #, c-format
 msgid "Moved to (%d, %d) in edit buffer\n"
 msgstr "Déplacement jusqu'à (%d, %d) dans le buffer d'édition\n"
 
-#: winio.c:896
+#: winio.c:890
 #, c-format
 msgid "current->data = \"%s\"\n"
 msgstr "current->data = \"%s\"\n"
 
-#: winio.c:939
+#: winio.c:933
 #, c-format
 msgid "I got \"%s\"\n"
 msgstr "J'ai reçu \"%s\"\n"
 
-#: winio.c:964
+#: winio.c:958
 msgid "Yes"
 msgstr "Oui"
 
-#: winio.c:966
+#: winio.c:960
 msgid "All"
 msgstr "Tous"
 
-#: winio.c:968
+#: winio.c:962
 msgid "No"
 msgstr "Non"
 
-#: winio.c:1104
+#: winio.c:1098
 #, c-format
 msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
 msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
 
-#: winio.c:1108
+#: winio.c:1102
 msgid "line %d of %d (%.0f%%), character %d of %d (%.0f%%)"
 msgstr "ligne %d sur %d (%.0f%%), caractère %d sur %d (%.0f%%)"
 
-#: winio.c:1232
+#: winio.c:1226
 msgid "Dumping file buffer to stderr...\n"
 msgstr "Envoi du buffer fichier sur stderr...\n"
 
-#: winio.c:1234
+#: winio.c:1228
 msgid "Dumping cutbuffer to stderr...\n"
 msgstr "Envoi du cutbuffer sur stderr...\n"
 
-#: winio.c:1236
+#: winio.c:1230
 msgid "Dumping a buffer to stderr...\n"
 msgstr "Envoi d'un buffer sur stderr...\n"
 
+#, fuzzy
+#~ msgid "To Replace"
+#~ msgstr "Rempacer par"
+
 #~ msgid " Y"
 #~ msgstr " O"
 
diff --git a/po/id.gmo b/po/id.gmo
index 10e24c97b45f788bc0156f66b09e91f7443a99a3..c6d2bef4abcc1878b6a3d423f9fb3d110f5abe6e 100644
Binary files a/po/id.gmo and b/po/id.gmo differ
diff --git a/po/id.po b/po/id.po
index be79c57f4ce6d71fbde48e55e2664d48fc6fa0e0..e37a39d56bd8cd813cc5e1d9c6ce33c052bf3da1 100644
--- a/po/id.po
+++ b/po/id.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: nano-0.9.10\n"
-"POT-Creation-Date: 2000-06-28 21:18-0400\n"
+"POT-Creation-Date: 2000-07-06 18:42-0400\n"
 "PO-Revision-Date: 2000-06-08 20:56+07:00\n"
 "Last-Translator: Tedi Heriyanto <tedi-h@usa.net>\n"
 "Language-Team: Indonesian <id@li.org>\n"
@@ -26,83 +26,83 @@ msgstr "Hapus cutbuffer =>\n"
 msgid "read_line: not on first line and prev is NULL"
 msgstr "read_line: tidak di baris pertama dan sebelumnya adalah NULL"
 
-#: files.c:180 files.c:193
+#: files.c:180 files.c:197
 #, c-format
 msgid "Read %d lines"
 msgstr "Membaca %d baris"
 
-#: files.c:211 search.c:129 search.c:147
+#: files.c:215 search.c:129 search.c:147
 #, c-format
 msgid "\"%s\" not found"
 msgstr "\"%s\" tidak ditemukan"
 
 #. We have a new file
-#: files.c:215
+#: files.c:219
 msgid "New File"
 msgstr "File Baru"
 
-#: files.c:224
+#: files.c:228
 #, c-format
 msgid "File \"%s\" is a directory"
 msgstr "File \"%s\" adalah sebuah direktori"
 
-#: files.c:229
+#: files.c:233
 msgid "Reading File"
 msgstr "Membaca File"
 
-#: files.c:242
+#: files.c:246
 msgid "File to insert [from ./] "
 msgstr "File untuk disisipkan "
 
-#: files.c:270 files.c:294 files.c:458 nano.c:1165
+#: files.c:271 files.c:295 files.c:462 nano.c:1130
 msgid "Cancelled"
 msgstr "Dibatalkan"
 
-#: files.c:306 files.c:322 files.c:334 files.c:351 files.c:357
+#: files.c:307 files.c:323 files.c:338 files.c:355 files.c:361
 #, c-format
 msgid "Could not open file for writing: %s"
 msgstr "Tidak dapat membuka file untuk menulis: %s"
 
-#: files.c:314
+#: files.c:315
 msgid "Could not open file: Path length exceeded."
 msgstr "Tidak dapat membuka file: panjang path terlampaui"
 
-#: files.c:339
+#: files.c:343
 #, c-format
 msgid "Wrote >%s\n"
 msgstr "Tulis >%s\n"
 
-#: files.c:366
+#: files.c:370
 #, c-format
 msgid "Could not close %s: %s"
 msgstr "Tidak dapat menutup %s: %s"
 
 #. Try a rename??
-#: files.c:387 files.c:398 files.c:403
+#: files.c:391 files.c:402 files.c:407
 #, c-format
 msgid "Could not open %s for writing: %s"
 msgstr "Tidak dapat membuka %s untuk menulis: %s"
 
-#: files.c:409
+#: files.c:413
 #, c-format
 msgid "Could not set permissions %o on %s: %s"
 msgstr "Tidak dapat menset permisi %o pada %s: %s"
 
-#: files.c:416
+#: files.c:420
 #, c-format
 msgid "Wrote %d lines"
 msgstr "Menulis %d baris"
 
-#: files.c:437
+#: files.c:441
 msgid "File Name to write"
 msgstr "Nama file untuk ditulis"
 
-#: files.c:442
+#: files.c:446
 #, c-format
 msgid "filename is %s"
 msgstr "Namafile adalah %s"
 
-#: files.c:447
+#: files.c:451
 msgid "File exists, OVERWRITE ?"
 msgstr "File ada, DITIMPA ?"
 
@@ -247,7 +247,7 @@ msgstr "Ke baris"
 msgid "Justify"
 msgstr "Justifikasi"
 
-#: global.c:169 global.c:240
+#: global.c:169 global.c:240 global.c:270
 msgid "Replace"
 msgstr "Ganti"
 
@@ -343,17 +343,12 @@ msgstr "Baris terakhir"
 msgid "Case Sens"
 msgstr "Case Sens"
 
-#: global.c:270
-msgid "To Replace"
-msgstr "Mengganti"
-
 #: global.c:276 global.c:295 global.c:305 global.c:321 global.c:325
-#: global.c:331 winio.c:969
+#: global.c:331 winio.c:963
 msgid "Cancel"
 msgstr "Batal"
 
 #: global.c:289
-#, fuzzy
 msgid "No Replace"
 msgstr ""
 
@@ -581,90 +576,90 @@ msgstr "Set Tanda"
 msgid "Mark UNset"
 msgstr "Unset Tanda"
 
-#: nano.c:847
+#: nano.c:857
 #, c-format
 msgid "check_wrap called with inptr->data=\"%s\"\n"
 msgstr "check_wrap dipanggil dengan inptr->data=\"%s\"\n"
 
-#: nano.c:925
+#: nano.c:917
 #, c-format
 msgid "current->data now = \"%s\"\n"
 msgstr "current->data sekarang =\"%s\"\n"
 
-#: nano.c:969
+#: nano.c:970
 #, c-format
 msgid "After, data = \"%s\"\n"
 msgstr "Setelah, data= \"%s\"\n"
 
-#: nano.c:1032
+#: nano.c:1040
 msgid "Error deleting tempfile, ack!"
 msgstr "Kesalahan menghapus tempfile, ack!"
 
-#: nano.c:1045 nano.c:1095
+#: nano.c:1057
 #, c-format
 msgid "Could not create a temporary filename: %s"
 msgstr "Tidak dapat membuat nama file sementara: %s"
 
-#: nano.c:1067 nano.c:1117
+#: nano.c:1081
 #, c-format
 msgid "Could not invoke spell program \"%s\""
 msgstr "Tidak dapat memanggil program ejaan \"%s\""
 
 #. Why 32512? I dont know!
-#: nano.c:1073 nano.c:1123
+#: nano.c:1087
 msgid "Could not invoke \"ispell\""
 msgstr "Tidak dapat memanggil \"ispell\""
 
-#: nano.c:1085 nano.c:1135
+#: nano.c:1099
 msgid "Finished checking spelling"
 msgstr "Selesai memeriksa ejaan"
 
-#: nano.c:1152
+#: nano.c:1117
 msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
 msgstr "Simpan buffer termodifikasi (JAWAB \"No\" AKAN MENGHAPUS PERUBAHAN) ?"
 
-#: nano.c:1275
+#: nano.c:1240
 msgid "Cannot resize top win"
 msgstr "Tidak dapat menganti ukuran jendela atas"
 
-#: nano.c:1277
+#: nano.c:1242
 msgid "Cannot move top win"
 msgstr "Tidak dapat memindahkan jendela atas"
 
-#: nano.c:1279
+#: nano.c:1244
 msgid "Cannot resize edit win"
 msgstr "Tidak dapat mengganti ukuran jendela edit"
 
-#: nano.c:1281
+#: nano.c:1246
 msgid "Cannot move edit win"
 msgstr "Tidak dapat memindah jendela edit"
 
-#: nano.c:1283
+#: nano.c:1248
 msgid "Cannot resize bottom win"
 msgstr "Tidak dapat mengganti ukuran jendela bawah"
 
-#: nano.c:1285
+#: nano.c:1250
 msgid "Cannot move bottom win"
 msgstr "Tidak dapat memindah jendela bawah"
 
-#: nano.c:1749
+#: nano.c:1705
 msgid "Main: set up windows\n"
 msgstr "Main: menset jendela\n"
 
-#: nano.c:1771
+#: nano.c:1727
 msgid "Main: bottom win\n"
 msgstr "Main: jendela bawah\n"
 
-#: nano.c:1777
+#: nano.c:1733
 msgid "Main: open file\n"
 msgstr "Main: membuka file\n"
 
-#: nano.c:1850
+#: nano.c:1806
 #, c-format
 msgid "I got Alt-[-%c! (%d)\n"
 msgstr "Saya mendapat Alt-%c! (%d)\n"
 
-#: nano.c:1866
+#: nano.c:1822
 #, c-format
 msgid "I got Alt-%c! (%d)\n"
 msgstr "Saya mendapat Alt-%c! (%d)\n"
@@ -754,54 +749,57 @@ msgstr " File: ..."
 msgid "Modified"
 msgstr "Dimodifikasi"
 
-#: winio.c:885
+#: winio.c:879
 #, c-format
 msgid "Moved to (%d, %d) in edit buffer\n"
 msgstr "Pindah ke (%d, %d) dalam buffer edit\n"
 
-#: winio.c:896
+#: winio.c:890
 #, c-format
 msgid "current->data = \"%s\"\n"
 msgstr "current->data = \"%s\"\n"
 
-#: winio.c:939
+#: winio.c:933
 #, c-format
 msgid "I got \"%s\"\n"
 msgstr "Saya mendapat \"%s\"\n"
 
-#: winio.c:964
+#: winio.c:958
 msgid "Yes"
 msgstr "Ya"
 
-#: winio.c:966
+#: winio.c:960
 msgid "All"
 msgstr "Semua"
 
-#: winio.c:968
+#: winio.c:962
 msgid "No"
 msgstr "Tidak"
 
-#: winio.c:1104
+#: winio.c:1098
 #, c-format
 msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
 msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
 
-#: winio.c:1108
+#: winio.c:1102
 msgid "line %d of %d (%.0f%%), character %d of %d (%.0f%%)"
 msgstr "baris %d dari %d (%f.0f%%), karakter %d dari %d (%.0f%%)"
 
-#: winio.c:1232
+#: winio.c:1226
 msgid "Dumping file buffer to stderr...\n"
 msgstr "Kirim buffer file ke stderr...\n"
 
-#: winio.c:1234
+#: winio.c:1228
 msgid "Dumping cutbuffer to stderr...\n"
 msgstr "Kirim cutbuffer ke stderr...\n"
 
-#: winio.c:1236
+#: winio.c:1230
 msgid "Dumping a buffer to stderr...\n"
 msgstr "Kirim buffer ke stderr...\n"
 
+#~ msgid "To Replace"
+#~ msgstr "Mengganti"
+
 #~ msgid "To Search"
 #~ msgstr "Mencari"
 
diff --git a/po/it.gmo b/po/it.gmo
index 8c8451f7a070a45bf2e0b9c5e9aaaa6c69e77acd..5ecb52083ce2a38daca4a0612b0ece37f79a94e9 100644
Binary files a/po/it.gmo and b/po/it.gmo differ
diff --git a/po/it.po b/po/it.po
index 3e7cbabee5c63e4ba684d65c88a1d26e0129fa17..0f0c021829b62146d432d093bbdb66767d2fb5eb 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 0.8.7\n"
-"POT-Creation-Date: 2000-06-28 21:18-0400\n"
+"POT-Creation-Date: 2000-07-06 18:42-0400\n"
 "PO-Revision-Date: 2000-03-03 04:57+0100\n"
 "Last-Translator: Daniele Medri <madrid@linux.it>\n"
 "MIME-Version: 1.0\n"
@@ -26,83 +26,83 @@ msgstr ""
 msgid "read_line: not on first line and prev is NULL"
 msgstr "read_line: no estamos en la primera línea y la anterior es NULL"
 
-#: files.c:180 files.c:193
+#: files.c:180 files.c:197
 #, c-format
 msgid "Read %d lines"
 msgstr "Leggi %d linee"
 
-#: files.c:211 search.c:129 search.c:147
+#: files.c:215 search.c:129 search.c:147
 #, c-format
 msgid "\"%s\" not found"
 msgstr "\"%s\" non trovato"
 
 #. We have a new file
-#: files.c:215
+#: files.c:219
 msgid "New File"
 msgstr "Nuovo file"
 
-#: files.c:224
+#: files.c:228
 #, c-format
 msgid "File \"%s\" is a directory"
 msgstr "Il file \"%s\" è una directory"
 
-#: files.c:229
+#: files.c:233
 msgid "Reading File"
 msgstr "Lettura file"
 
-#: files.c:242
+#: files.c:246
 msgid "File to insert [from ./] "
 msgstr "File da inserire [da ./] "
 
-#: files.c:270 files.c:294 files.c:458 nano.c:1165
+#: files.c:271 files.c:295 files.c:462 nano.c:1130
 msgid "Cancelled"
 msgstr "Cancellato"
 
-#: files.c:306 files.c:322 files.c:334 files.c:351 files.c:357
+#: files.c:307 files.c:323 files.c:338 files.c:355 files.c:361
 #, c-format
 msgid "Could not open file for writing: %s"
 msgstr "Impossibile aprire il file in scrittura: %s"
 
-#: files.c:314
+#: files.c:315
 msgid "Could not open file: Path length exceeded."
 msgstr "Impossibile aprire il file: esagerata lunghezza del percorso."
 
-#: files.c:339
+#: files.c:343
 #, c-format
 msgid "Wrote >%s\n"
 msgstr "Scrivi >%s\n"
 
-#: files.c:366
+#: files.c:370
 #, c-format
 msgid "Could not close %s: %s"
 msgstr "Impossibile chiudere %s: %s"
 
 #. Try a rename??
-#: files.c:387 files.c:398 files.c:403
+#: files.c:391 files.c:402 files.c:407
 #, c-format
 msgid "Could not open %s for writing: %s"
 msgstr "Impossibile aprire %s in scrittura: %s"
 
-#: files.c:409
+#: files.c:413
 #, c-format
 msgid "Could not set permissions %o on %s: %s"
 msgstr "Impossibile configurare i permessi di %o su %s: %s"
 
-#: files.c:416
+#: files.c:420
 #, c-format
 msgid "Wrote %d lines"
 msgstr "Scritte %d linee"
 
-#: files.c:437
+#: files.c:441
 msgid "File Name to write"
 msgstr "Salva con nome"
 
-#: files.c:442
+#: files.c:446
 #, c-format
 msgid "filename is %s"
 msgstr "Il nome file è %s"
 
-#: files.c:447
+#: files.c:451
 msgid "File exists, OVERWRITE ?"
 msgstr "File esistente, SOVRASCRIVERE?"
 
@@ -246,7 +246,7 @@ msgstr "Vai alla linea"
 msgid "Justify"
 msgstr "Giustifica"
 
-#: global.c:169 global.c:240
+#: global.c:169 global.c:240 global.c:270
 msgid "Replace"
 msgstr "Sostituisci"
 
@@ -342,18 +342,12 @@ msgstr "Ultima linea"
 msgid "Case Sens"
 msgstr "Case sens"
 
-#: global.c:270
-#, fuzzy
-msgid "To Replace"
-msgstr "Sostituisci"
-
 #: global.c:276 global.c:295 global.c:305 global.c:321 global.c:325
-#: global.c:331 winio.c:969
+#: global.c:331 winio.c:963
 msgid "Cancel"
 msgstr "Cancella"
 
 #: global.c:289
-#, fuzzy
 msgid "No Replace"
 msgstr ""
 
@@ -567,92 +561,92 @@ msgstr ""
 msgid "Mark UNset"
 msgstr ""
 
-#: nano.c:847
+#: nano.c:857
 #, c-format
 msgid "check_wrap called with inptr->data=\"%s\"\n"
 msgstr "check_wrap chiamata con inptr->data=\"%s\"\n"
 
-#: nano.c:925
+#: nano.c:917
 #, c-format
 msgid "current->data now = \"%s\"\n"
 msgstr "current->data ora = \"%d\"\n"
 
-#: nano.c:969
+#: nano.c:970
 #, c-format
 msgid "After, data = \"%s\"\n"
 msgstr "Dopo, data = \"%s\"\n"
 
-#: nano.c:1032
+#: nano.c:1040
 msgid "Error deleting tempfile, ack!"
 msgstr ""
 
-#: nano.c:1045 nano.c:1095
+#: nano.c:1057
 #, c-format
 msgid "Could not create a temporary filename: %s"
 msgstr "Impossibile creare un nome file temporaneo: %s"
 
-#: nano.c:1067 nano.c:1117
+#: nano.c:1081
 #, c-format
 msgid "Could not invoke spell program \"%s\""
 msgstr "Impossibile invocare correttore ortografico \"%s\""
 
 #. Why 32512? I dont know!
-#: nano.c:1073 nano.c:1123
+#: nano.c:1087
 msgid "Could not invoke \"ispell\""
 msgstr "Impossibile invocare \"ispell\""
 
-#: nano.c:1085 nano.c:1135
+#: nano.c:1099
 msgid "Finished checking spelling"
 msgstr "Controllo ortografico terminato"
 
-#: nano.c:1152
+#: nano.c:1117
 msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
 msgstr ""
 "Salva il buffer modificato (RISPONDENDO \"No\" ANNULLERETE I CAMBIAMENTI "
 "AVVENUTI) ?"
 
-#: nano.c:1275
+#: nano.c:1240
 msgid "Cannot resize top win"
 msgstr "Impossibile ridimensionare la finestra superiore"
 
-#: nano.c:1277
+#: nano.c:1242
 msgid "Cannot move top win"
 msgstr "Impossibile spostare la finestra superiore"
 
-#: nano.c:1279
+#: nano.c:1244
 msgid "Cannot resize edit win"
 msgstr "Impossibile ridimensionare la finestra di modifica"
 
-#: nano.c:1281
+#: nano.c:1246
 msgid "Cannot move edit win"
 msgstr "Impossibile spostare finestra di modifica"
 
-#: nano.c:1283
+#: nano.c:1248
 msgid "Cannot resize bottom win"
 msgstr "Impossibile ridimensionare la finestra inferiore"
 
-#: nano.c:1285
+#: nano.c:1250
 msgid "Cannot move bottom win"
 msgstr "Impossibile spostare la finestra inferiore"
 
-#: nano.c:1749
+#: nano.c:1705
 msgid "Main: set up windows\n"
 msgstr "Main: configura finestre\n"
 
-#: nano.c:1771
+#: nano.c:1727
 msgid "Main: bottom win\n"
 msgstr "Main: finestra inferiore\n"
 
-#: nano.c:1777
+#: nano.c:1733
 msgid "Main: open file\n"
 msgstr "Main: apri file\n"
 
-#: nano.c:1850
+#: nano.c:1806
 #, c-format
 msgid "I got Alt-[-%c! (%d)\n"
 msgstr "Premuto Alt-[-%c! (%d)\n"
 
-#: nano.c:1866
+#: nano.c:1822
 #, c-format
 msgid "I got Alt-%c! (%d)\n"
 msgstr "Premuto Alt-%c! (%d)\n"
@@ -742,54 +736,58 @@ msgstr "File: ..."
 msgid "Modified"
 msgstr "Modificato"
 
-#: winio.c:885
+#: winio.c:879
 #, c-format
 msgid "Moved to (%d, %d) in edit buffer\n"
 msgstr "Mosso in (%d, %d) nel buffer di modifica\n"
 
-#: winio.c:896
+#: winio.c:890
 #, c-format
 msgid "current->data = \"%s\"\n"
 msgstr "current->data = \"%s\"\n"
 
-#: winio.c:939
+#: winio.c:933
 #, c-format
 msgid "I got \"%s\"\n"
 msgstr "Premuto \"%s\"\n"
 
-#: winio.c:964
+#: winio.c:958
 msgid "Yes"
 msgstr " Sì"
 
-#: winio.c:966
+#: winio.c:960
 msgid "All"
 msgstr " Tutti"
 
-#: winio.c:968
+#: winio.c:962
 msgid "No"
 msgstr " No"
 
-#: winio.c:1104
+#: winio.c:1098
 #, c-format
 msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
 msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
 
-#: winio.c:1108
+#: winio.c:1102
 msgid "line %d of %d (%.0f%%), character %d of %d (%.0f%%)"
 msgstr "linea %d di %d (%.0f%%), carattere %d di %d (%.0f%%)"
 
-#: winio.c:1232
+#: winio.c:1226
 msgid "Dumping file buffer to stderr...\n"
 msgstr "Copia file buffer sullo stderr...\n"
 
-#: winio.c:1234
+#: winio.c:1228
 msgid "Dumping cutbuffer to stderr...\n"
 msgstr "Copia cutbuffer sullo stderr...\n"
 
-#: winio.c:1236
+#: winio.c:1230
 msgid "Dumping a buffer to stderr...\n"
 msgstr "Copia un buffer sullo stderr...\n"
 
+#, fuzzy
+#~ msgid "To Replace"
+#~ msgstr "Sostituisci"
+
 #, fuzzy
 #~ msgid "To Search"
 #~ msgstr "Ricerca%s"
diff --git a/po/nano.pot b/po/nano.pot
index 46d38ccfcbe08460abafc8e4011f055a3ec44866..e1e30f9580412c1fbc5285815033be622fc27ea0 100644
--- a/po/nano.pot
+++ b/po/nano.pot
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-07-06 18:42-0400\n"
+"POT-Creation-Date: 2000-07-06 21:41-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -32,7 +32,7 @@ msgstr ""
 msgid "Read %d lines"
 msgstr ""
 
-#: files.c:215 search.c:129 search.c:147
+#: files.c:215 search.c:156 search.c:174
 #, c-format
 msgid "\"%s\" not found"
 msgstr ""
@@ -55,7 +55,7 @@ msgstr ""
 msgid "File to insert [from ./] "
 msgstr ""
 
-#: files.c:271 files.c:295 files.c:462 nano.c:1130
+#: files.c:271 files.c:295 files.c:462 nano.c:1133
 msgid "Cancelled"
 msgstr ""
 
@@ -107,248 +107,248 @@ msgstr ""
 msgid "File exists, OVERWRITE ?"
 msgstr ""
 
-#: global.c:110
+#: global.c:116
 msgid "Invoke the help menu"
 msgstr ""
 
-#: global.c:111
+#: global.c:117
 msgid "Write the current file to disk"
 msgstr ""
 
-#: global.c:112
+#: global.c:118
 msgid "Exit from nano"
 msgstr ""
 
-#: global.c:113
+#: global.c:119
 msgid "Goto a specific line number"
 msgstr ""
 
-#: global.c:114
+#: global.c:120
 msgid "Justify the current paragraph"
 msgstr ""
 
-#: global.c:115
+#: global.c:121
 msgid "Replace text within the editor"
 msgstr ""
 
-#: global.c:116
+#: global.c:122
 msgid "Insert another file into the current one"
 msgstr ""
 
-#: global.c:117
+#: global.c:123
 msgid "Search for text within the editor"
 msgstr ""
 
-#: global.c:118
+#: global.c:124
 msgid "Move to the previous screen"
 msgstr ""
 
-#: global.c:119
+#: global.c:125
 msgid "Move to the next screen"
 msgstr ""
 
-#: global.c:120
+#: global.c:126
 msgid "Cut the current line and store it in the cutbuffer"
 msgstr ""
 
-#: global.c:121
+#: global.c:127
 msgid "Uncut from the cutbuffer into the current line"
 msgstr ""
 
-#: global.c:122
+#: global.c:128
 msgid "Show the posititon of the cursor"
 msgstr ""
 
-#: global.c:123
+#: global.c:129
 msgid "Invoke the spell checker (if available)"
 msgstr ""
 
-#: global.c:124
+#: global.c:130
 msgid "Move up one line"
 msgstr ""
 
-#: global.c:125
+#: global.c:131
 msgid "Move down one line"
 msgstr ""
 
-#: global.c:126
+#: global.c:132
 msgid "Move forward one character"
 msgstr ""
 
-#: global.c:127
+#: global.c:133
 msgid "Move back one character"
 msgstr ""
 
-#: global.c:128
+#: global.c:134
 msgid "Move to the beginning of the current line"
 msgstr ""
 
-#: global.c:129
+#: global.c:135
 msgid "Move to the end of the current line"
 msgstr ""
 
-#: global.c:130
+#: global.c:136
 msgid "Go to the first line of the file"
 msgstr ""
 
-#: global.c:131
+#: global.c:137
 msgid "Go to the last line of the file"
 msgstr ""
 
-#: global.c:132
+#: global.c:138
 msgid "Refresh (redraw) the current screen"
 msgstr ""
 
-#: global.c:133
+#: global.c:139
 msgid "Mark text at the current cursor location"
 msgstr ""
 
-#: global.c:134
+#: global.c:140
 msgid "Delete the character under the cursor"
 msgstr ""
 
-#: global.c:136
+#: global.c:142
 msgid "Delete the character to the left of the cursor"
 msgstr ""
 
-#: global.c:137
+#: global.c:143
 msgid "Insert a tab character"
 msgstr ""
 
-#: global.c:138
+#: global.c:144
 msgid "Insert a carriage return at the cursor position"
 msgstr ""
 
-#: global.c:140
+#: global.c:146
 msgid "Make the current search or replace case (in)sensitive"
 msgstr ""
 
-#: global.c:141
+#: global.c:147
 msgid "Cancel the current function"
 msgstr ""
 
-#: global.c:146 global.c:256 global.c:328
+#: global.c:152 global.c:262 global.c:334
 msgid "Get Help"
 msgstr ""
 
-#: global.c:149 global.c:157
+#: global.c:155 global.c:163
 msgid "WriteOut"
 msgstr ""
 
-#: global.c:153 global.c:317
+#: global.c:159 global.c:323
 msgid "Exit"
 msgstr ""
 
-#: global.c:161 global.c:252 global.c:273 global.c:292
+#: global.c:167 global.c:258 global.c:279 global.c:298
 msgid "Goto Line"
 msgstr ""
 
-#: global.c:166 global.c:244
+#: global.c:172 global.c:250
 msgid "Justify"
 msgstr ""
 
-#: global.c:169 global.c:240 global.c:270
+#: global.c:175 global.c:246 global.c:276
 msgid "Replace"
 msgstr ""
 
-#: global.c:173
+#: global.c:179
 msgid "Read File"
 msgstr ""
 
-#: global.c:177
+#: global.c:183
 msgid "Where Is"
 msgstr ""
 
-#: global.c:181 global.c:309
+#: global.c:187 global.c:315
 msgid "Prev Page"
 msgstr ""
 
-#: global.c:185 global.c:313
+#: global.c:191 global.c:319
 msgid "Next Page"
 msgstr ""
 
-#: global.c:189
+#: global.c:195
 msgid "Cut Text"
 msgstr ""
 
-#: global.c:192
+#: global.c:198
 msgid "UnCut Txt"
 msgstr ""
 
-#: global.c:196
+#: global.c:202
 msgid "Cur Pos"
 msgstr ""
 
-#: global.c:200
+#: global.c:206
 msgid "To Spell"
 msgstr ""
 
-#: global.c:204
+#: global.c:210
 msgid "Up"
 msgstr ""
 
-#: global.c:207
+#: global.c:213
 msgid "Down"
 msgstr ""
 
-#: global.c:210
+#: global.c:216
 msgid "Forward"
 msgstr ""
 
-#: global.c:213
+#: global.c:219
 msgid "Back"
 msgstr ""
 
-#: global.c:216
+#: global.c:222
 msgid "Home"
 msgstr ""
 
-#: global.c:219
+#: global.c:225
 msgid "End"
 msgstr ""
 
-#: global.c:222
+#: global.c:228
 msgid "Refresh"
 msgstr ""
 
-#: global.c:225
+#: global.c:231
 msgid "Mark Text"
 msgstr ""
 
-#: global.c:228
+#: global.c:234
 msgid "Delete"
 msgstr ""
 
-#: global.c:232
+#: global.c:238
 msgid "Backspace"
 msgstr ""
 
-#: global.c:236
+#: global.c:242
 msgid "Tab"
 msgstr ""
 
-#: global.c:247
+#: global.c:253
 msgid "Enter"
 msgstr ""
 
-#: global.c:260 global.c:280 global.c:299
+#: global.c:266 global.c:286 global.c:305
 msgid "First Line"
 msgstr ""
 
-#: global.c:263 global.c:283 global.c:302
+#: global.c:269 global.c:289 global.c:308
 msgid "Last Line"
 msgstr ""
 
-#: global.c:266 global.c:286
+#: global.c:272 global.c:292
 msgid "Case Sens"
 msgstr ""
 
-#: global.c:276 global.c:295 global.c:305 global.c:321 global.c:325
-#: global.c:331 winio.c:963
+#: global.c:282 global.c:301 global.c:311 global.c:327 global.c:331
+#: global.c:337 winio.c:963
 msgid "Cancel"
 msgstr ""
 
-#: global.c:289
+#: global.c:295
 msgid "No Replace"
 msgstr ""
 
@@ -403,305 +403,323 @@ msgstr ""
 msgid " -T \t\t--tabsize=[num]\t\tSet width of a tab to num\n"
 msgstr ""
 
-#: nano.c:317
-msgid " -V \t\t--version\t\tPrint version information and exit\n"
+#: nano.c:316
+msgid " -R\t\t--regexp\t\tUse regular expressions for search\n"
 msgstr ""
 
 #: nano.c:319
-msgid " -c \t\t--const\t\t\tConstantly show cursor position\n"
+msgid " -V \t\t--version\t\tPrint version information and exit\n"
 msgstr ""
 
 #: nano.c:321
-msgid " -h \t\t--help\t\t\tShow this message\n"
+msgid " -c \t\t--const\t\t\tConstantly show cursor position\n"
 msgstr ""
 
 #: nano.c:323
-msgid " -i \t\t--autoindent\t\tAutomatically indent new lines\n"
+msgid " -h \t\t--help\t\t\tShow this message\n"
 msgstr ""
 
 #: nano.c:325
+msgid " -i \t\t--autoindent\t\tAutomatically indent new lines\n"
+msgstr ""
+
+#: nano.c:327
 msgid " -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite.\n"
 msgstr ""
 
-#: nano.c:328
+#: nano.c:330
 msgid " -m \t\t--mouse\t\t\tEnable mouse\n"
 msgstr ""
 
-#: nano.c:333
+#: nano.c:335
 msgid ""
 " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
 msgstr ""
 
-#: nano.c:335
+#: nano.c:337
 msgid " -p\t \t--pico\t\t\tMake bottom 2 lines more Pico-like\n"
 msgstr ""
 
-#: nano.c:337
+#: nano.c:339
 msgid " -s [prog] \t--speller=[prog]\tEnable alternate speller\n"
 msgstr ""
 
-#: nano.c:339
+#: nano.c:341
 msgid " -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n"
 msgstr ""
 
-#: nano.c:341
+#: nano.c:343
 msgid " -v \t\t--view\t\t\tView (read only) mode\n"
 msgstr ""
 
-#: nano.c:343
+#: nano.c:345
 msgid " -w \t\t--nowrap\t\tDon't wrap long lines\n"
 msgstr ""
 
-#: nano.c:345
+#: nano.c:347
 msgid " -x \t\t--nohelp\t\tDon't show help window\n"
 msgstr ""
 
-#: nano.c:347
+#: nano.c:349
 msgid " -z \t\t--suspend\t\tEnable suspend\n"
 msgstr ""
 
-#: nano.c:349
+#: nano.c:351
 msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
 msgstr ""
 
-#: nano.c:351
+#: nano.c:353
 msgid ""
 "Usage: nano [option] +LINE <file>\n"
 "\n"
 msgstr ""
 
-#: nano.c:352
+#: nano.c:354
 msgid "Option\t\tMeaning\n"
 msgstr ""
 
-#: nano.c:354
+#: nano.c:356
 msgid " -T [num]\tSet width of a tab to num\n"
 msgstr ""
 
-#: nano.c:356
+#: nano.c:358
+msgid " -R\t\tUse regular expressions for search\n"
+msgstr ""
+
+#: nano.c:359
 msgid " -V \t\tPrint version information and exit\n"
 msgstr ""
 
-#: nano.c:357
+#: nano.c:360
 msgid " -c \t\tConstantly show cursor position\n"
 msgstr ""
 
-#: nano.c:358
+#: nano.c:361
 msgid " -h \t\tShow this message\n"
 msgstr ""
 
-#: nano.c:359
+#: nano.c:362
 msgid " -i \t\tAutomatically indent new lines\n"
 msgstr ""
 
-#: nano.c:361
+#: nano.c:364
 msgid " -l \t\tDon't follow symbolic links, overwrite.\n"
 msgstr ""
 
-#: nano.c:364
+#: nano.c:367
 msgid " -m \t\tEnable mouse\n"
 msgstr ""
 
-#: nano.c:368
+#: nano.c:371
 msgid " -r [#cols] \tSet fill cols to (wrap lines at) #cols\n"
 msgstr ""
 
-#: nano.c:369
+#: nano.c:372
 msgid " -s [prog]  \tEnable alternate speller\n"
 msgstr ""
 
-#: nano.c:370
+#: nano.c:373
 msgid " -p \t\tMake bottom 2 lines more Pico-like\n"
 msgstr ""
 
-#: nano.c:371
+#: nano.c:374
 msgid " -t \t\tAuto save on exit, don't prompt\n"
 msgstr ""
 
-#: nano.c:372
+#: nano.c:375
 msgid " -v \t\tView (read only) mode\n"
 msgstr ""
 
-#: nano.c:373
+#: nano.c:376
 msgid " -w \t\tDon't wrap long lines\n"
 msgstr ""
 
-#: nano.c:374
+#: nano.c:377
 msgid " -x \t\tDon't show help window\n"
 msgstr ""
 
-#: nano.c:375
+#: nano.c:378
 msgid " -z \t\tEnable suspend\n"
 msgstr ""
 
-#: nano.c:376
+#: nano.c:379
 msgid " +LINE\t\tStart at line number LINE\n"
 msgstr ""
 
-#: nano.c:383
+#: nano.c:386
 #, c-format
 msgid " nano version %s by Chris Allegretta (compiled %s, %s)\n"
 msgstr ""
 
-#: nano.c:385
+#: nano.c:388
 msgid " Email: nano@asty.org\tWeb: http://www.asty.org/nano\n"
 msgstr ""
 
-#: nano.c:410
+#: nano.c:413
 msgid "Mark Set"
 msgstr ""
 
-#: nano.c:415
+#: nano.c:418
 msgid "Mark UNset"
 msgstr ""
 
-#: nano.c:857
+#: nano.c:860
 #, c-format
 msgid "check_wrap called with inptr->data=\"%s\"\n"
 msgstr ""
 
-#: nano.c:917
+#: nano.c:920
 #, c-format
 msgid "current->data now = \"%s\"\n"
 msgstr ""
 
-#: nano.c:970
+#: nano.c:973
 #, c-format
 msgid "After, data = \"%s\"\n"
 msgstr ""
 
-#: nano.c:1040
+#: nano.c:1043
 msgid "Error deleting tempfile, ack!"
 msgstr ""
 
-#: nano.c:1057
+#: nano.c:1060
 #, c-format
 msgid "Could not create a temporary filename: %s"
 msgstr ""
 
-#: nano.c:1081
+#: nano.c:1084
 #, c-format
 msgid "Could not invoke spell program \"%s\""
 msgstr ""
 
 #. Why 32512? I dont know!
-#: nano.c:1087
+#: nano.c:1090
 msgid "Could not invoke \"ispell\""
 msgstr ""
 
-#: nano.c:1099
+#: nano.c:1102
 msgid "Finished checking spelling"
 msgstr ""
 
-#: nano.c:1117
+#: nano.c:1120
 msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
 msgstr ""
 
-#: nano.c:1240
+#: nano.c:1243
 msgid "Cannot resize top win"
 msgstr ""
 
-#: nano.c:1242
+#: nano.c:1245
 msgid "Cannot move top win"
 msgstr ""
 
-#: nano.c:1244
+#: nano.c:1247
 msgid "Cannot resize edit win"
 msgstr ""
 
-#: nano.c:1246
+#: nano.c:1249
 msgid "Cannot move edit win"
 msgstr ""
 
-#: nano.c:1248
+#: nano.c:1251
 msgid "Cannot resize bottom win"
 msgstr ""
 
-#: nano.c:1250
+#: nano.c:1253
 msgid "Cannot move bottom win"
 msgstr ""
 
-#: nano.c:1705
+#: nano.c:1712
 msgid "Main: set up windows\n"
 msgstr ""
 
-#: nano.c:1727
+#: nano.c:1734
 msgid "Main: bottom win\n"
 msgstr ""
 
-#: nano.c:1733
+#: nano.c:1740
 msgid "Main: open file\n"
 msgstr ""
 
-#: nano.c:1806
+#: nano.c:1813
 #, c-format
 msgid "I got Alt-[-%c! (%d)\n"
 msgstr ""
 
-#: nano.c:1822
+#: nano.c:1829
 #, c-format
 msgid "I got Alt-%c! (%d)\n"
 msgstr ""
 
-#: search.c:54
+#: search.c:68
+#, c-format
+msgid "Case Sensitive Regexp Search%s"
+msgstr ""
+
+#: search.c:70
+#, c-format
+msgid "Regexp Search%s"
+msgstr ""
+
+#: search.c:72
 #, c-format
 msgid "Case Sensitive Search%s"
 msgstr ""
 
-#: search.c:55
+#: search.c:74
 #, c-format
 msgid "Search%s"
 msgstr ""
 
-#: search.c:59
+#: search.c:82
 msgid "Search Cancelled"
 msgstr ""
 
-#: search.c:143
+#: search.c:170
 msgid "Search Wrapped"
 msgstr ""
 
-#: search.c:193
+#: search.c:222
 #, c-format
 msgid "Replaced %d occurences"
 msgstr ""
 
-#: search.c:195
+#: search.c:224
 msgid "Replaced 1 occurence"
 msgstr ""
 
-#: search.c:213 search.c:235 search.c:258
+#: search.c:353 search.c:375 search.c:398
 msgid "Replace Cancelled"
 msgstr ""
 
-#: search.c:231
+#: search.c:371
 #, c-format
 msgid "Replace with [%s]"
 msgstr ""
 
 #. last_search is empty
-#: search.c:256
+#: search.c:396
 msgid "Replace with"
 msgstr ""
 
-#: search.c:297
+#: search.c:437
 msgid "Replace this instance?"
 msgstr ""
 
 #. Ask for it
-#: search.c:362
+#: search.c:487
 msgid "Enter line number"
 msgstr ""
 
-#: search.c:364
+#: search.c:489
 msgid "Aborted"
 msgstr ""
 
-#: search.c:384
+#: search.c:509
 msgid "Come on, be reasonable"
 msgstr ""
 
-#: search.c:389
+#: search.c:514
 #, c-format
 msgid "Only %d lines available, skipping to last line"
 msgstr ""
diff --git a/proto.h b/proto.h
index 54e1b9aafceda34cee5942e91756207bddf10915..1e0d9df738372951f0f23704997256cf414a441a 100644
--- a/proto.h
+++ b/proto.h
@@ -21,6 +21,7 @@
 /* Externs */
 
 #include <sys/stat.h>
+#include <regex.h>
 #include "nano.h"
 
 extern int center_x, center_y, editwinrows;
@@ -41,6 +42,9 @@ extern shortcut main_list[MAIN_LIST_LEN], whereis_list[WHEREIS_LIST_LEN];
 extern shortcut replace_list[REPLACE_LIST_LEN], goto_list[GOTO_LIST_LEN];
 extern shortcut writefile_list[WRITEFILE_LIST_LEN], help_list[HELP_LIST_LEN];
 extern shortcut spell_list[SPELL_LIST_LEN];
+extern int use_regexp, regexp_compiled;
+extern regex_t search_regexp;
+extern regmatch_t regmatches[10];  
 
 /* Programs we want available */
 
diff --git a/search.c b/search.c
index 48d21da552da3c0046a570205353c581a6b827dc..8835d1fa79b988e5f4089af8836c375f77f6ae4f 100644
--- a/search.c
+++ b/search.c
@@ -32,6 +32,20 @@
 #define _(string) (string)
 #endif
 
+/* Regular expression helper functions */
+
+void regexp_init(const char *regexp)
+{
+    regcomp(&search_regexp, regexp, ISSET(CASE_SENSITIVE) ? 0 : REG_ICASE);
+    SET(REGEXP_COMPILED);
+}
+
+void regexp_cleanup()
+{
+    UNSET(REGEXP_COMPILED);
+    regfree(&search_regexp);
+}
+
 /* Set up the system variables for a search or replace.  Returns -1 on
    abort, 0 on success, and 1 on rerun calling program 
    Return -2 to run opposite program (searchg -> replace, replace -> search)
@@ -42,17 +56,26 @@ int search_init(int replacing)
 {
     int i;
     char buf[BUFSIZ];
-
+    char *prompt;
+ 
     if (last_search[0]) {
 	snprintf(buf, BUFSIZ, " [%s]", last_search);
     } else {
 	buf[0] = '\0';
     }
 
+    if (ISSET(USE_REGEXP) && ISSET(CASE_SENSITIVE))
+        prompt = _("Case Sensitive Regexp Search%s");
+    else if (ISSET(USE_REGEXP))
+        prompt = _("Regexp Search%s");
+    else if (ISSET(CASE_SENSITIVE))
+        prompt = _("Case Sensitive Search%s");
+    else
+        prompt = _("Search%s");            
+        
     i = statusq(replacing ? replace_list : whereis_list,
 		replacing ? REPLACE_LIST_LEN : WHEREIS_LIST_LEN, "",
-		ISSET(CASE_SENSITIVE) ? _("Case Sensitive Search%s") :
-		_("Search%s"), buf);
+		prompt, buf);
 
     /* Cancel any search, or just return with no previous search */
     if ((i == -1) || (i < 0 && !last_search[0])) {
@@ -61,8 +84,12 @@ int search_init(int replacing)
 	return -1;
     } else if (i == -2) {	/* Same string */
 	strncpy(answer, last_search, 132);
+        if (ISSET(USE_REGEXP))
+            regexp_init(answer);
     } else if (i == 0) {	/* They entered something new */
 	strncpy(last_search, answer, 132);
+        if (ISSET(USE_REGEXP))
+            regexp_init(answer);
 
 	/* Blow away last_replace because they entered a new search
 	   string....uh, right? =) */
@@ -157,6 +184,8 @@ void search_abort(void)
     UNSET(KEEP_CUTBUFFER);
     display_main_list();
     wrefresh(bottomwin);
+    if (ISSET(REGEXP_COMPILED))
+        regexp_cleanup();
 }
 
 /* Search for a string */
@@ -200,6 +229,117 @@ void replace_abort(void)
     UNSET(KEEP_CUTBUFFER);
     display_main_list();
     reset_cursor();
+    if (ISSET(REGEXP_COMPILED))
+        regexp_cleanup();
+}
+
+int replace_regexp(char *string, int create_flag)
+{
+    /* split personality here - if create_flag is null, just calculate
+     * the size of the replacement line (necessary because of
+     * subexpressions like \1 \2 \3 in the replaced text) */
+
+    char *c;
+    int new_size = strlen(current->data) + 1;
+    int search_match_count = regmatches[0].rm_eo -
+        regmatches[0].rm_so;
+
+    new_size -= search_match_count;
+
+    /* Iterate through the replacement text to handle
+     * subexpression replacement using \1, \2, \3, etc */
+
+    c = last_replace;
+    while (*c) {
+        if (*c != '\\') {
+            if (create_flag)
+                *string++=*c;
+            c++;
+            new_size++;
+        } else {
+            int num = (int)*(c+1) - (int)'0';
+            if (num >= 1 && num <= 9) {
+
+                int i = regmatches[num].rm_so;
+
+                if (num > search_regexp.re_nsub) {
+                    /* Ugh, they specified a subexpression that doesn't
+                       exist.  */
+                    return -1;
+                }
+
+                /* Skip over the replacement expression */
+                c+=2;
+
+                /* But add the length of the subexpression to new_size */
+                new_size += regmatches[num].rm_eo - regmatches[num].rm_so;
+
+                /* And if create_flag is set, append the result of the
+                 * subexpression match to the new line */
+                while (create_flag && i < regmatches[num].rm_eo )
+                    *string++=*(current->data + i++);
+               
+            } else {
+                if (create_flag)
+                    *string++=*c;
+                c++;
+                new_size++;
+            }
+        }
+    }
+
+    if (create_flag)
+        *string = 0;
+
+    return new_size;
+}
+    
+char *replace_line()
+{
+    char *copy, *tmp;
+    int new_line_size;
+    int search_match_count;
+
+    /* Calculate size of new line */
+    if (ISSET(USE_REGEXP)) {
+        search_match_count = regmatches[0].rm_eo -
+            regmatches[0].rm_so;
+        new_line_size = replace_regexp(NULL, 0);
+
+        /* If they specified an invalid subexpression in the replace
+         * text, return NULL indicating an error */
+        if (new_line_size < 0)
+            return NULL;
+    } else {
+        search_match_count = strlen(last_search);
+        new_line_size = strlen(current->data) - strlen(last_search) +
+            strlen(last_replace) + 1;
+    }
+    
+    /* Create buffer */
+    copy = nmalloc(new_line_size);
+
+    /* Head of Original Line */
+    strncpy(copy, current->data, current_x);
+    copy[current_x] = 0;
+
+    /* Replacement Text */
+    if (!ISSET(USE_REGEXP))
+        strcat(copy, last_replace);
+    else
+        (void)replace_regexp(copy + current_x, 1);
+
+    /* The tail of the original line */
+    /* This may expose other bugs, because it no longer
+       goes through each character on the string
+       and tests for string goodness.  But because
+       we can assume the invariant that current->data
+       is less than current_x + strlen(last_search) long,
+       this should be safe.  Or it will expose bugs ;-) */
+    tmp = current->data + current_x + search_match_count;
+    strcat(copy, tmp);
+
+    return copy;
 }
 
 /* Search for a string */
@@ -207,7 +347,7 @@ int do_replace(void)
 {
     int i, replaceall = 0, numreplaced = 0, beginx;
     filestruct *fileptr, *begin;
-    char *tmp, *copy, prevanswer[132] = "";
+    char *copy, prevanswer[132] = "";
 
     if ((i = search_init(1)) == -1) {
 	statusbar(_("Replace Cancelled"));
@@ -300,26 +440,11 @@ int do_replace(void)
 	    if (i == 2)
 		replaceall = 1;
 
-	    /* Create buffer */
-	    copy = nmalloc(strlen(current->data) - strlen(last_search) +
-			   strlen(last_replace) + 1);
-
-	    /* Head of Original Line */
-	    strncpy(copy, current->data, current_x);
-	    copy[current_x] = 0;
-
-	    /* Replacement Text */
-	    strcat(copy, last_replace);
-
-	    /* The tail of the original line */
-	    /*  This may expose other bugs, because it no longer
-	       goes through each character on the string
-	       and tests for string goodness.  But because
-	       we can assume the invariant that current->data
-	       is less than current_x + strlen(last_search) long,   
-	       this should be safe.  Or it will expose bugs ;-) */
-	    tmp = current->data + current_x + strlen(last_search);
-	    strcat(copy, tmp);
+            copy = replace_line();
+            if (!copy) {
+                statusbar("Replace failed: unknown subexpression!");
+                replace_abort();
+            }
 
 	    /* Cleanup */
 	    free(current->data);
diff --git a/utils.c b/utils.c
index c10dda55ec9df893620074bfcf332ca99a482c15..a4fa95420c3292aa3ba2cd6038211a0d660b5d4f 100644
--- a/utils.c
+++ b/utils.c
@@ -80,7 +80,12 @@ char *strcasestr(char *haystack, char *needle)
 
 char *strstrwrapper(char *haystack, char *needle)
 {
-
+    if (ISSET(USE_REGEXP)) {
+      int result=regexec(&search_regexp, haystack, 10, regmatches, 0);
+      if (!result)
+          return haystack+regmatches[0].rm_so;
+      return 0;
+    }  
     if (ISSET(CASE_SENSITIVE))
 	return strstr(haystack, needle);
     else