diff --git a/src/event/Loop.cxx b/src/event/Loop.cxx
index 545654cd8..82e68ff7e 100644
--- a/src/event/Loop.cxx
+++ b/src/event/Loop.cxx
@@ -30,12 +30,7 @@
 
 EventLoop::EventLoop()
 	:SocketMonitor(*this),
-	 now_ms(::MonotonicClockMS()),
-	 quit(false), busy(true),
-#ifndef NDEBUG
-	 virgin(true),
-#endif
-	 thread(ThreadId::Null())
+	 now_ms(::MonotonicClockMS())
 {
 	SocketMonitor::Open(wake_fd.Get());
 	SocketMonitor::Schedule(SocketMonitor::READ);
diff --git a/src/event/Loop.hxx b/src/event/Loop.hxx
index 3232aaa41..a658520fe 100644
--- a/src/event/Loop.hxx
+++ b/src/event/Loop.hxx
@@ -81,7 +81,7 @@ class EventLoop final : SocketMonitor
 
 	unsigned now_ms;
 
-	bool quit;
+	bool quit = false;
 
 	/**
 	 * True when the object has been modified and another check is
@@ -95,14 +95,14 @@ class EventLoop final : SocketMonitor
 	 *
 	 * Protected with #mutex.
 	 */
-	bool busy;
+	bool busy = true;
 
 #ifndef NDEBUG
 	/**
 	 * True if Run() was never called.  This is used for assert()
 	 * calls.
 	 */
-	bool virgin;
+	bool virgin = true;
 #endif
 
 	PollGroup poll_group;
@@ -111,7 +111,7 @@ class EventLoop final : SocketMonitor
 	/**
 	 * A reference to the thread that is currently inside Run().
 	 */
-	ThreadId thread;
+	ThreadId thread = ThreadId::Null();
 
 public:
 	EventLoop();