diff -Nur -x '*.orig' -x '*.rej' newt-0.51.5/dialogboxes.c mezzanine_patched_newt-0.51.5/dialogboxes.c
--- newt-0.51.5/dialogboxes.c	2003-01-03 15:54:45.000000000 -0500
+++ mezzanine_patched_newt-0.51.5/dialogboxes.c	2004-08-20 20:13:20.000000000 -0400
@@ -18,15 +18,18 @@
 
 static void addButtons(int height, int width, newtComponent form, 
 		       newtComponent * okay, newtComponent * cancel, 
+		       char * left,
+		       char * right,
 		       int flags) {
     if (flags & FLAG_NOCANCEL) {
-	*okay = makeButton((width - 8) / 2, height - buttonHeight - 1, "Ok");
+	*okay = makeButton(((width - 18) / 3) * 2 + 9, 
+				height - buttonHeight - 1, right);
 	*cancel = NULL;
 	newtFormAddComponent(form, *okay);
     } else {
-	*okay = makeButton((width - 18) / 3, height - buttonHeight - 1, "Ok");
-	*cancel = makeButton(((width - 18) / 3) * 2 + 9, 
-				height - buttonHeight - 1, "Cancel");
+	*cancel = makeButton((width - 18) / 3, height - buttonHeight - 1, left);
+	*okay = makeButton(((width - 18) / 3) * 2 + 9, 
+				height - buttonHeight - 1, right);
 	newtFormAddComponents(form, *okay, *cancel, NULL);
     }
 }
@@ -129,10 +132,11 @@
 }
 
 int inputBox(const char * text, int height, int width, poptContext optCon, 
-		int flags, const char ** result) {
+		char * left, char * right, int flags, const char ** result) {
     newtComponent form, entry, okay, cancel, answer, tb;
     const char * val;
     int rc = DLG_OKAY;
+    int eFlag = (flags & (NEWT_FLAG_HIDDEN|NEWT_FLAG_PASSWORD));
     int top;
 
     val = poptGetArg(optCon);
@@ -141,11 +145,11 @@
 
     form = newtForm(NULL, NULL, 0);
     entry = newtEntry(1, top + 1, val, width - 2, &val, 
-			NEWT_FLAG_SCROLL | NEWT_FLAG_RETURNEXIT);
+			NEWT_FLAG_SCROLL | NEWT_FLAG_RETURNEXIT | eFlag);
 
     newtFormAddComponents(form, tb, entry, NULL);
 
-    addButtons(height, width, form, &okay, &cancel, flags);
+    addButtons(height, width, form, &okay, &cancel, left, right, flags);
 
     answer = newtRunForm(form);
     if (answer == cancel)
@@ -157,7 +161,7 @@
 }
 
 int listBox(const char * text, int height, int width, poptContext optCon,
-		int flags, const char ** result) {
+		char * left, char * right, int flags, const char ** result) {
     newtComponent form, okay, tb, answer, listBox;
     newtComponent cancel = NULL;
     const char * arg;
@@ -228,7 +232,7 @@
 
     newtFormAddComponents(form, tb, listBox, NULL);
 
-    addButtons(height, width, form, &okay, &cancel, flags);
+    addButtons(height, width, form, &okay, &cancel, left, right, flags);
 
     answer = newtRunForm(form);
     if (answer == cancel)
@@ -241,7 +245,8 @@
 }
 
 int checkList(const char * text, int height, int width, poptContext optCon,
-		int useRadio, int flags, const char *** selections) {
+		int useRadio, char * left, char * right, int flags,
+		const char *** selections) {
     newtComponent form, okay, tb, subform, answer;
     newtComponent sb = NULL, cancel = NULL;
     const char * arg;
@@ -329,7 +334,7 @@
 
     newtFormAddComponents(form, tb, subform, NULL);
 
-    addButtons(height, width, form, &okay, &cancel, flags);
+    addButtons(height, width, form, &okay, &cancel, left, right, flags);
 
     answer = newtRunForm(form);
     if (answer == cancel)
@@ -364,7 +369,8 @@
     return rc;
 }
 
-int messageBox(const char * text, int height, int width, int type, int flags) {
+int messageBox(const char * text, int height, int width, char *left,
+			   char *right, int type, int flags) {
     newtComponent form, yes, tb, answer;
     newtComponent no = NULL;
     int tFlag = (flags & FLAG_SCROLL_TEXT) ? NEWT_FLAG_SCROLL : 0;
@@ -376,7 +382,17 @@
     newtTextboxSetText(tb, text);
 
     newtFormAddComponent(form, tb);
-
+    
+    /* If left=Cancel and right=Ok, we probably didn't get any --left and
+     * --right arguments passed. Assume we want Yes and No instead. This has
+     * the side effect of not being able to pass in "Cancel" and "Ok" but
+     * I can live with that.
+     */
+    if (!strcmp(left,"Cancel") && !strcmp(right,"Ok")) {
+	left = "Yes";
+	right = "No";
+    }
+    
     switch ( type ) {
     case MSGBOX_INFO:
 	break;
@@ -385,9 +401,9 @@
 	newtFormAddComponent(form, yes);
 	break;
     default:
-	yes = makeButton((width - 16) / 3, height - 1 - buttonHeight, "Yes");
-	no = makeButton(((width - 16) / 3) * 2 + 9, height - 1 - buttonHeight, 
-			"No");
+	yes = makeButton((width - 18) / 3, height - 1 - buttonHeight, left);
+	no = makeButton(((width - 18) / 3) * 2 + 9, height - 1 - buttonHeight, 
+			right);
 	newtFormAddComponents(form, yes, no, NULL);
 
 	if (flags & FLAG_DEFAULT_NO)
diff -Nur -x '*.orig' -x '*.rej' newt-0.51.5/dialogboxes.h mezzanine_patched_newt-0.51.5/dialogboxes.h
--- newt-0.51.5/dialogboxes.h	2003-01-03 15:54:45.000000000 -0500
+++ mezzanine_patched_newt-0.51.5/dialogboxes.h	2004-08-20 20:13:12.000000000 -0400
@@ -16,13 +16,15 @@
 #define DLG_OKAY		0
 #define DLG_CANCEL		1
 
-int messageBox(const char * text, int height, int width, int type, int flags);
+int messageBox(const char * text, int height, int width, char *left, 
+			   char *right, int type, int flags);
 int checkList(const char * text, int height, int width, poptContext optCon,
-		int useRadio, int flags, const char *** selections);
+		int useRadio, char * left, char * right,
+		int flags, const char *** selections);
 int listBox(const char * text, int height, int width, poptContext optCon,
-		int flags, const char ** result);
+		char * left, char * right, int flags, const char ** result);
 int inputBox(const char * text, int height, int width, poptContext optCon, 
-		int flags, const char ** result);
+		char * left, char * right, int flags, const char ** result);
 int gauge(const char * text, int height, int width, poptContext optCon, int fd, 
 		int flags);
 void useFullButtons(int state);
diff -Nur -x '*.orig' -x '*.rej' newt-0.51.5/test.c mezzanine_patched_newt-0.51.5/test.c
--- newt-0.51.5/test.c	2003-01-04 14:15:25.000000000 -0500
+++ mezzanine_patched_newt-0.51.5/test.c	2004-08-20 20:11:39.000000000 -0400
@@ -33,13 +33,13 @@
 }
 
 int main(void) {
-    newtComponent b1, b2, r1, r2, r3, e2, e3, l1, l2, l3, scale;
+    newtComponent b1, b2, r1, r2, r3, e2, e3, e4, l1, l2, l3, l4, scale;
     newtComponent lb, t, rsf, answer, timeLabel;
     newtComponent cs[10];
     newtComponent f, chklist, e1;
     struct callbackInfo cbis[3];
     char results[10];
-    const char * enr2, * enr3, *scaleVal;
+    const char * enr2, * enr3, * scaleVal, * enr4;
     void ** selectedList;
     int i, numsel;
     char buf[20];
@@ -81,10 +81,11 @@
     l1 = newtLabel(3, 6, "Scale:");
     l2 = newtLabel(3, 7, "Scrolls:");
     l3 = newtLabel(3, 8, "Hidden:");
+    l4 = newtLabel(3, 9, "Password:");
     e1 = newtEntry(12, 6, "", 20, &scaleVal, 0);
     e2 = newtEntry(12, 7, "Default", 20, &enr2, NEWT_FLAG_SCROLL);
-/*    e3 = newtEntry(12, 8, NULL, 20, &enr3, NEWT_FLAG_HIDDEN); */
-    e3 = newtEntry(12, 8, NULL, 20, &enr3, NEWT_FLAG_PASSWORD);
+    e3 = newtEntry(12, 8, NULL, 20, &enr3, NEWT_FLAG_HIDDEN);
+    e4 = newtEntry(12, 9, NULL, 20, &enr4, NEWT_FLAG_PASSWORD);
 
     cbis[0].state = &results[0];
     cbis[0].en = e1;
@@ -94,7 +95,7 @@
 
     newtFormSetHeight(chklist, 3);
 
-    newtFormAddComponents(f, b1, b2, l1, l2, l3, e1, e2, e3, chklist, NULL);
+    newtFormAddComponents(f, b1, b2, l1, l2, l3, l4, e1, e2, e3, e4, chklist, NULL);
     newtFormAddComponents(f, rsf, scale, NULL);
 
     lb = newtListbox(45, 1, 6, NEWT_FLAG_MULTIPLE | NEWT_FLAG_BORDER |
@@ -141,6 +142,7 @@
     scaleVal = strdup(scaleVal);
     enr2 = strdup(enr2);
     enr3 = strdup(enr3);
+    enr4 = strdup(enr4);
 
     selectedList = newtListboxGetSelection(lb, &numsel);
 
@@ -153,6 +155,7 @@
     printf("got string 1: %s\n", scaleVal);
     printf("got string 2: %s\n", enr2);
     printf("got string 3: %s\n", enr3);
+    printf("got string 4: %s\n", enr4);
 
     printf("\nSelected listbox items (%d):\n", numsel);
     if(selectedList) {
diff -Nur -x '*.orig' -x '*.rej' newt-0.51.5/whiptail.c mezzanine_patched_newt-0.51.5/whiptail.c
--- newt-0.51.5/whiptail.c	2003-01-03 15:54:45.000000000 -0500
+++ mezzanine_patched_newt-0.51.5/whiptail.c	2004-08-20 20:13:12.000000000 -0400
@@ -47,16 +47,22 @@
     int rc = 1;
     int flags = 0;
     int defaultNo = 0;
+    int hidden = 0;
+    int password = 0;
     int separateOutput = 0;
     const char * result;
     const char ** selections, ** next;
     char * title = NULL;
     char * backtitle = NULL;
+    char * left = "Cancel";
+    char * right = "Ok";
     struct poptOption optionsTable[] = {
 	    { "backtitle", '\0', POPT_ARG_STRING, &backtitle, 0 },
 	    { "checklist", '\0', 0, 0, OPT_CHECKLIST },
 	    { "clear", '\0', 0, &clear, 0 },
 	    { "defaultno", '\0', 0, &defaultNo, 0 },
+	    { "hidden", '\0', 0, &hidden, 0 },
+	    { "password", '\0', 0, &password, 0 },
 	    { "inputbox", '\0', 0, 0, OPT_INPUTBOX },
 	    { "fb", '\0', 0, 0, OPT_FULLBUTTONS },
 	    { "fullbuttons", '\0', 0, 0, OPT_FULLBUTTONS },
@@ -70,6 +76,8 @@
 	    { "scrolltext", '\0', 0, &scrollText, 0 },
 	    { "separate-output", '\0', 0, &separateOutput, 0 },
 	    { "title", '\0', POPT_ARG_STRING, &title, 0 },
+	    { "left", '\0', POPT_ARG_STRING, &left, 0 },
+	    { "right", '\0', POPT_ARG_STRING, &right, 0 },
 	    { "yesno", '\0', 0, 0, OPT_YESNO },
 	    { 0, 0, 0, 0, 0 } 
     };
@@ -164,32 +172,35 @@
     if (noItem) flags |= FLAG_NOITEM;
     if (scrollText) flags |= FLAG_SCROLL_TEXT;
     if (defaultNo) flags |= FLAG_DEFAULT_NO;
+    if (hidden) flags |= NEWT_FLAG_HIDDEN;
+    if (password) flags |= NEWT_FLAG_PASSWORD;
 
     switch (mode) {
-      case MODE_MSGBOX:
-	rc = messageBox(text, height, width, MSGBOX_MSG, flags);
+	case MODE_MSGBOX:
+	rc = messageBox(text, height, width, left, right, MSGBOX_MSG, flags);
 	break;
 
       case MODE_INFOBOX:
-	rc = messageBox(text, height, width, MSGBOX_INFO, flags);
+	rc = messageBox(text, height, width, left, right, MSGBOX_INFO, flags);
 	break;
 
       case MODE_YESNO:
-	rc = messageBox(text, height, width, MSGBOX_YESNO, flags);
+	rc = messageBox(text, height, width, left, right, MSGBOX_YESNO, flags);
 	break;
 
       case MODE_INPUTBOX:
-	rc = inputBox(text, height, width, optCon, flags, &result);
+	rc = inputBox(text, height, width, optCon, left, right, flags, &result);
 	if (!rc) fprintf(stderr, "%s", result);
 	break;
 
       case MODE_MENU:
-	rc = listBox(text, height, width, optCon, flags, &result);
+	rc = listBox(text, height, width, optCon, left, right, flags, &result);
 	if (!rc) fprintf(stderr, "%s", result);
 	break;
 
       case MODE_RADIOLIST:
-	rc = checkList(text, height, width, optCon, 1, flags, &selections);
+	rc = checkList(text, height, width, optCon, 1, left, right,
+	    flags, &selections);
 	if (!rc) {
 	    fprintf(stderr, "%s", selections[0]);
 	    free(selections);
@@ -197,7 +208,8 @@
 	break;
 
       case MODE_CHECKLIST:
-	rc = checkList(text, height, width, optCon, 0, flags, &selections);
+	rc = checkList(text, height, width, optCon, 0, left, right, flags,
+	    &selections);
 
 	if (!rc) {
 	    for (next = selections; *next; next++) {
diff -Nur -x '*.orig' -x '*.rej' newt-0.51.5/whiptcl.c mezzanine_patched_newt-0.51.5/whiptcl.c
--- newt-0.51.5/whiptcl.c	2000-02-16 06:34:40.000000000 -0500
+++ mezzanine_patched_newt-0.51.5/whiptcl.c	2004-08-20 20:13:12.000000000 -0400
@@ -72,6 +72,8 @@
     char * result;
     char ** selections, ** next;
     char * title = NULL;
+    char * right = "Ok";
+    char * left = "Cancel";
     struct poptOption optionsTable[] = {
 	    { "checklist", '\0', 0, 0, OPT_CHECKLIST },
 	    { "defaultno", '\0', 0, &defaultNo, 0 },
@@ -83,6 +85,8 @@
 	    { "radiolist", '\0', 0, 0, OPT_RADIOLIST },
 	    { "scrolltext", '\0', 0, &scrollText, 0 },
 	    { "title", '\0', POPT_ARG_STRING, &title, 0 },
+	    { "left", '\0', POPT_ARG_STRING, &left, 0 },
+	    { "right", '\0', POPT_ARG_STRING, &right, 0 },
 	    { "yesno", '\0', 0, 0, OPT_YESNO },
 	    { 0, 0, 0, 0, 0 } 
     };
@@ -180,11 +184,11 @@
 
     switch (mode) {
       case MODE_MSGBOX:
-	rc = messageBox(text, height, width, MSGBOX_MSG, flags);
+	rc = messageBox(text, height, width, left, right, MSGBOX_MSG, flags);
 	break;
 
       case MODE_YESNO:
-	rc = messageBox(text, height, width, MSGBOX_YESNO, flags);
+	rc = messageBox(text, height, width, left, right, MSGBOX_YESNO, flags);
 	if (rc == DLG_OKAY)
 	    interp->result = "yes";
 	else 
@@ -193,7 +197,7 @@
 	break;
 
       case MODE_INPUTBOX:
-	rc = inputBox(text, height, width, optCon, flags, &result);
+	rc = inputBox(text, height, width, optCon, left, right, flags, &result);
 	if (!rc) {
 	    interp->result = strdup(result);
 	    interp->freeProc = TCL_DYNAMIC;
@@ -201,7 +205,7 @@
 	break;
 
       case MODE_MENU:
-	rc = listBox(text, height, width, optCon, flags, &result);
+	rc = listBox(text, height, width, optCon, left, right, flags, &result);
 	if (!rc) {
 	    interp->result = strdup(result);
 	    interp->freeProc = TCL_DYNAMIC;
@@ -209,7 +213,8 @@
 	break;
 
       case MODE_RADIOLIST:
-	rc = checkList(text, height, width, optCon, 1, flags, &selections);
+	rc = checkList(text, height, width, optCon, 1, left, right,
+	    flags, &selections);
 	if (!rc) {
 	    interp->result = strdup(selections[0]);
 	    interp->freeProc = TCL_DYNAMIC;
@@ -217,7 +222,8 @@
 	break;
 
       case MODE_CHECKLIST:
-	rc = checkList(text, height, width, optCon, 0, flags, &selections);
+	rc = checkList(text, height, width, optCon, 0, left, right,
+	    flags, &selections);
 
 	if (!rc) {
 	    for (next = selections; *next; next++)