#299939 and #218014 likely have the same cause. Someone might
consider downgrading #299939 and/or merging them.
It seems that both are caused by a user-trigged disconnect event while
in a state when disconnect should be disallowed. A proper solution
probably requires glib synchronization, but I'll bet that the problems
can be visibly solved by something like:
* runs the command the user defined to disconnect
gk_disconnect (GtkWidget * button, gpointer data)
GkDial *gkdial = (GkDial *) data;
gchar *disconnect_cmd = DOWNCMD;
+ if (!disconnect_valid) return;
* this shows that gkdial was the responsible for the connection
gkdial->was_gkdial = FALSE;
gkdial_exec (gkdial, disconnect_cmd, DISCONNECTING);
where disconnect_valid is a global variable, set to TRUE at the
appropriate time, and set to FALSE above, and while redialing.
I'm having trouble testing this since I don't have a linmodem..