Lord it's been a wild 5 weeks. I got a spam email with an unsubscribe link, so I clicked on it, and it was very js intensive, 20 thousand lines of js I would learn later, and it didn't work. Well ok that became a project. I made a local copy of the website, deminimized, with my trace points injected. There was at least a week of work implementing these trace points and breakpoints in a way that would not disrupt the syntax or semantics of the code. So now I have something to trace through, but I noticed the web page produced an error with my trace points in, that was not there without the trace. As you know from any symbolic debugger, break points should not change the flow of execution!! And yet it did. It took another week or more for me to disentangle this mess from edbrowse and build a js only example of the phenomenon. I sent it to Sami, saying it was his bug, but he couldn't reproduce it. He tried several ways but couldn't reproduce it; meantime I had reproduced it on 3 different machines. We finally determine the bug does not appear when duktape includes some debugging features. Those features are stripped out by the various distributions. That is typical; end users don't debug, so distribute the programs as lean as possible. But it was a bit ironic; his users might run into this bug, but he never would, and in fact he would have to debug the bug without the debugging features. Well Sami is a world class programmer so in a few days he pushed the fix. I pulled the latest duktape and rebuilt edbrowse and confirmed the fix. Now I was back in the saddle again. I could trace execution and insert breakpoints and that would not change the flow. Many days of tracing and I finally realized I was missing some data, because an xhr request failed with 404. That is because they were setting some special headers on xhr and I wasn't passing them to curl, in fact I was ignoring them altogether. Once I made this connection the xhr call worked, and I got the json data I needed, but still the form didn't work. More tracing and I realized there was a document.onchange handler that was never called. Turns out every input in a form is suppose to trigger an oninput event and an onchange event, and an onclick event if it is checkbox or radio. I was doing the onclick but never even thought about oninput or onchange. I made this connection (latest commit) and now the unsubscribe form works. Hopefully I won't get any more email from them. Wow! Debugging edbrowse is not for the faint of heart. Karl Dahlke