diff --git a/src/gmnlm.c b/src/gmnlm.c

index ff17c1a661ec9b95847b391e720964c4bab24e9d..e852d275c4b2d32785d0fa68c12ae99d76aa6466 100644

--- a/src/gmnlm.c

+++ b/src/gmnlm.c

@@ -625,6 +625,7 @@ }

in[n - 1] = 0; // Remove LF

char url[1024] = {0};

+ char save_url[1024] = {0};

int r;

switch (in[0]) {

case '\0':

@@ -749,6 +750,7 @@ }

case 'e':

case 'p':

case 't':

+ strncpy(&save_url[0], browser->plain_url, sizeof(url)-1);

if (!in[1]) {

strncpy(&url[0], browser->plain_url, sizeof(url)-1);

} else {

@@ -770,7 +772,7 @@ fprintf(browser->tty, "=> %s\n", url);

char *tempfile;

if (in[0] == 't') {

struct gemini_response resp;

- set_url(browser, url, &browser->history);

+ set_url(browser, url, NULL);

enum gemini_result res = do_requests(browser, &resp);

if (res != GEMINI_OK) {

fprintf(stderr, "Error: %s\n",

@@ -780,7 +782,7 @@ tempfile = tmpnam(NULL);

download_resp(browser->tty, resp, tempfile, url);

}

gemini_response_finish(&resp);

- set_url(browser, url, NULL);

+ set_url(browser, save_url, NULL);

}

if (in[0] == 'e' || browser->autoopen) {

char target[1024];