diff --git a/src/thread.c b/src/thread.c index 0cd1ae33dc2ed5f7cb545169161aa9f6eff8b135..e21580198390a7079f1f449118e60961df0b2244 100644 --- a/src/thread.c +++ b/src/thread.c @@ -645,7 +645,10 @@ mark_threads_callback (void *ignore) Lisp_Object thread_obj; XSETTHREAD (thread_obj, iter); - mark_object (thread_obj); + /* Don't mark main_thread, since it is not allocated + dynamically, thus nothing would unmark it. */ + if (iter != &main_thread) + mark_object (thread_obj); mark_one_thread (iter); } }