Just keep whatever longpoll we have if it's working instead of risking the stop/start dereference problem.
diff --git a/main.c b/main.c
index 11d8b97..6ae4329 100644
--- a/main.c
+++ b/main.c
@@ -4467,6 +4467,8 @@ static void start_longpoll(void)
static void restart_longpoll(void)
{
+ if (want_longpoll && have_longpoll)
+ return;
stop_longpoll();
if (want_longpoll)
start_longpoll();