diff -ruN links-0.96/default.c links-0.96+user-agent/default.c
--- links-0.96/default.c	Sun Apr  8 22:46:18 2001
+++ links-0.96+user-agent/default.c	Thu Oct 25 21:36:57 2001
@@ -783,6 +783,11 @@
  -version\n\
   Prints the links version number and exit.\n\
 \n\
+ -user-agent <agent>\n\
+  Change the User Agent. That means identification string, which\n\
+  is sent to HTTP server, when a document is requested. Default\n\
+  is \"Links (version; system_id)\".\n\
+\n\
  -help\n\
   Prints this help screen\n\
 \n\
@@ -858,6 +863,8 @@
 
 unsigned char default_anon_pass[MAX_STR_LEN] = "somebody@host.domain";
 
+unsigned char user_agent[MAX_STR_LEN] = "";
+
 /* These are workarounds for some CGI script bugs */
 struct http_bugs http_bugs = { 0, 1, 0, 0 };
 /*int bug_302_redirect = 0;*/
@@ -876,6 +883,7 @@
 	1, version_cmd, NULL, NULL, 0, 0, NULL, NULL, "version",
 	1, no_connect_cmd, NULL, NULL, 0, 0, NULL, NULL, "no-connect",
 	1, anonymous_cmd, NULL, NULL, 0, 0, NULL, NULL, "anonymous",
+	1, gen_cmd, str_rd, str_wr, 0, MAX_STR_LEN, user_agent, "user_agent", "user-agent",
 	1, gen_cmd, num_rd, NULL, 0, MAXINT, &base_session, NULL, "base-session",
 	1, dump_cmd, NULL, NULL, D_DUMP, 0, NULL, NULL, "dump",
 	1, dump_cmd, NULL, NULL, D_SOURCE, 0, NULL, NULL, "source",
diff -ruN links-0.96/http.c links-0.96+user-agent/http.c
--- links-0.96/http.c	Mon Jun 18 21:59:55 2001
+++ links-0.96+user-agent/http.c	Thu Oct 25 18:54:28 2001
@@ -238,9 +238,15 @@
 		}
 		add_to_str(&hdr, &l, "\r\n");
 	}
-	add_to_str(&hdr, &l, "User-Agent: Links (" VERSION_STRING "; ");
-	add_to_str(&hdr, &l, system_name);
-	add_to_str(&hdr, &l, ")\r\n");
+	if(!strcmp(user_agent, "")) {
+		add_to_str(&hdr, &l, "User-Agent: Links (" VERSION_STRING "; ");
+		add_to_str(&hdr, &l, system_name);
+		add_to_str(&hdr, &l, ")\r\n");
+	} else {
+		add_to_str(&hdr, &l, "User-Agent: ");
+		add_to_str(&hdr, &l, user_agent);
+		add_to_str(&hdr, &l, "\r\n");
+	}
 	add_to_str(&hdr, &l, "Accept: */*\r\n");
 	if (!(accept_charset)) {
 		int i;
diff -ruN links-0.96/links.1 links-0.96+user-agent/links.1
--- links-0.96/links.1	Sun Dec 31 23:26:52 2000
+++ links-0.96+user-agent/links.1	Thu Oct 25 18:54:28 2001
@@ -103,6 +103,12 @@
 Write the given HTML document in source form to stdout.
 
 .TP
+\f3-user-agent\f1
+Change the User Agent. That means identification string, which
+is sent to HTTP server, when a document is requested. Default
+is "Links (version; system_id)".
+
+.TP
 \f3-version\f1
 Print the 
 .I links
diff -ruN links-0.96/links.h links-0.96+user-agent/links.h
--- links-0.96/links.h	Mon Jun 11 12:14:25 2001
+++ links-0.96+user-agent/links.h	Thu Oct 25 18:54:28 2001
@@ -1955,6 +1955,7 @@
 int save_url_history();
 
 extern int anonymous;
+extern unsigned char user_agent[];
 
 extern unsigned char system_name[];
 
diff -ruN links-0.96/menu.c links-0.96+user-agent/menu.c
--- links-0.96/menu.c	Wed Apr 25 23:08:28 2001
+++ links-0.96+user-agent/menu.c	Thu Oct 25 21:42:18 2001
@@ -438,16 +438,16 @@
  	do_dialog(term, d, getml(d, NULL));
 }
 
-unsigned char *http_labels[] = { TEXT(T_USE_HTTP_10), TEXT(T_ALLOW_SERVER_BLACKLIST), TEXT(T_BROKEN_302_REDIRECT), TEXT(T_NO_KEEPALIVE_AFTER_POST_REQUEST) };
+unsigned char *http_labels[] = { TEXT(T_USE_HTTP_10), TEXT(T_ALLOW_SERVER_BLACKLIST), TEXT(T_BROKEN_302_REDIRECT), TEXT(T_NO_KEEPALIVE_AFTER_POST_REQUEST), TEXT(T_USER_AGENT), };
 
 int dlg_http_options(struct dialog_data *dlg, struct dialog_item_data *di)
 {
 	struct http_bugs *bugs = (struct http_bugs *)di->cdata;
 	struct dialog *d;
-	if (!(d = mem_alloc(sizeof(struct dialog) + 7 * sizeof(struct dialog_item)))) return 0;
-	memset(d, 0, sizeof(struct dialog) + 7 * sizeof(struct dialog_item));
+	if (!(d = mem_alloc(sizeof(struct dialog) + 8 * sizeof(struct dialog_item)))) return 0;
+	memset(d, 0, sizeof(struct dialog) + 8 * sizeof(struct dialog_item));
 	d->title = TEXT(T_HTTP_BUG_WORKAROUNDS);
-	d->fn = checkbox_list_fn;
+	d->fn = group_fn;
 	d->udata = http_labels;
 	d->items[0].type = D_CHECKBOX;
 	d->items[0].gid = 0;
@@ -465,15 +465,19 @@
 	d->items[3].gid = 0;
 	d->items[3].dlen = sizeof(int);
 	d->items[3].data = (void *)&bugs->bug_post_no_keepalive;
-	d->items[4].type = D_BUTTON;
-	d->items[4].gid = B_ENTER;
-	d->items[4].fn = ok_dialog;
-	d->items[4].text = TEXT(T_OK);
+	d->items[4].gid = 0;
+	d->items[4].type = D_FIELD;
+	d->items[4].dlen = 25;
+	d->items[4].data = user_agent;
 	d->items[5].type = D_BUTTON;
-	d->items[5].gid = B_ESC;
-	d->items[5].fn = cancel_dialog;
-	d->items[5].text = TEXT(T_CANCEL);
-	d->items[6].type = D_END;
+	d->items[5].gid = B_ENTER;
+	d->items[5].fn = ok_dialog;
+	d->items[5].text = TEXT(T_OK);
+	d->items[6].type = D_BUTTON;
+	d->items[6].gid = B_ESC;
+	d->items[6].fn = cancel_dialog;
+	d->items[6].text = TEXT(T_CANCEL);
+	d->items[7].type = D_END;
  	do_dialog(dlg->win->term, d, getml(d, NULL));
 	return 0;
 }
diff -ruN links-0.96/intl/czech.lng links-0.96+user-agent/intl/czech.lng
--- links-0.96/intl/czech.lng	Mon Jul  2 02:28:05 2001
+++ links-0.96+user-agent/intl/czech.lng	Thu Oct 25 21:26:04 2001
@@ -175,6 +175,7 @@
 T_SAVE_IT_OR_DISPLAY_IT, "uložit nebo zobrazit?",
 T_OPEN, "Otevřít",
 T_DO_YOU_WANT_TO_FOLLOW_REDIRECT_AND_POST_FORM_DATA_TO_URL, "Chceš následovat redirekt a poslat data na adresu",
+T_USER_AGENT, "Identifikace browseru",
 T_DO_YOU_WANT_TO_POST_FORM_DATA_TO_URL, "Chceš poslat data z formuláře na adresu",
 T_DO_YOU_WANT_TO_REPOST_FORM_DATA_TO_URL, "Chceš poslat data z formuláře znova na adresu",
 T_WARNING, "Upozornění",
diff -ruN links-0.96/intl/english.lng links-0.96+user-agent/intl/english.lng
--- links-0.96/intl/english.lng	Mon Jun 11 12:00:52 2001
+++ links-0.96+user-agent/intl/english.lng	Thu Oct 25 21:37:18 2001
@@ -175,6 +175,7 @@
 T_SAVE_IT_OR_DISPLAY_IT, "save it or display it?",
 T_OPEN, "Open",
 T_DO_YOU_WANT_TO_FOLLOW_REDIRECT_AND_POST_FORM_DATA_TO_URL, "Do you want to follow redirect and post form data to url",
+T_USER_AGENT, "Browser ID",
 T_DO_YOU_WANT_TO_POST_FORM_DATA_TO_URL, "Do you want to post form data to url",
 T_DO_YOU_WANT_TO_REPOST_FORM_DATA_TO_URL, "Do you want to repost form data to url",
 T_WARNING, "Warning",
diff -ruN links-0.96/intl/estonian.lng links-0.96+user-agent/intl/estonian.lng
diff -ruN links-0.96/intl/french.lng links-0.96+user-agent/intl/french.lng
--- links-0.96/intl/french.lng	Mon Jul  2 02:28:06 2001
+++ links-0.96+user-agent/intl/french.lng	Thu Oct 25 21:40:26 2001
@@ -175,6 +175,7 @@
 T_SAVE_IT_OR_DISPLAY_IT, "enregistrer ou afficher ?",
 T_OPEN, "Ouvrir",
 T_DO_YOU_WANT_TO_FOLLOW_REDIRECT_AND_POST_FORM_DATA_TO_URL, "Voulez-vous envoyer ces données au nouveau serveur ?",
+T_USER_AGENT, "L'identification du navigateur", 
 T_DO_YOU_WANT_TO_POST_FORM_DATA_TO_URL, "Voulez-vous envoyer ces données ?",
 T_DO_YOU_WANT_TO_REPOST_FORM_DATA_TO_URL, "Vous-vous re-envoyer ces données ?",
 T_WARNING, "Avertissement",
