fork() only if needed