allow timeout of 0 (again?)