diff -pru dillo/src/IO/dpi.c dillo-cur/src/IO/dpi.c --- dillo/src/IO/dpi.c 2004-07-16 10:12:19.000000000 -0400 +++ dillo-cur/src/IO/dpi.c 2004-11-01 11:23:39.000000000 -0300 @@ -281,6 +281,11 @@ static void Dpi_parse_token(conn_data_t urlstr = Get_attr_value(conn->Tok, conn->TokSize, "url"); a_Chain_fcb(OpSend, conn->InfoRecv, urlstr, cmd); g_free(urlstr); + + } else if (strcmp(cmd, "open_url") == 0) { + urlstr = Get_attr_value(conn->Tok, conn->TokSize, "url"); + a_Chain_fcb(OpSend, conn->InfoRecv, urlstr, cmd); + g_free(urlstr); } g_free(cmd); diff -pru dillo/src/capi.c dillo-cur/src/capi.c --- dillo/src/capi.c 2004-10-14 12:00:43.000000000 -0300 +++ dillo-cur/src/capi.c 2004-11-01 11:41:18.000000000 -0300 @@ -507,6 +507,10 @@ void a_Capi_ccc(int Op, int Branch, int a_Capi_ccc(OpSend, 3, BCK, conn->InfoPipe, Data1, NULL); } else if (strcmp(Data2, "reload_request") == 0) { a_Nav_reload(conn->bw); + } else if (strcmp(Data2, "open_url") == 0) { + DilloUrl *url = a_Url_new(Data1, NULL, 0, 0, 0); + a_Nav_push(conn->bw, url); + a_Url_free(url); } break; case OpEnd: