Marcus Frings writes: > * Mark Plaksin wrote: > >> Here's the relevant section of the diff: > >> Index: gnus-start.el >> diff -u gnus/lisp/gnus-start.el:6.86 gnus/lisp/gnus-start.el:6.87 >> --- gnus-start.el:6.86 Mon Dec 22 15:06:54 2003 >> +++ gnus-start.el Tue Dec 30 04:58:14 2003 > >> [ ... ] > >> @@ -1639,12 +1642,25 @@ >> ;; nil for non-foreign groups that the user has requested not be checked >> ;; t for unchecked foreign groups or bogus groups, or groups that can't >> ;; be checked, for one reason or other. >> - (if (and (setq method (gnus-info-method info)) >> - (not (inline >> - (gnus-server-equal >> - gnus-select-method >> - (setq method (gnus-server-get-method nil method))))) >> - (not (gnus-secondary-method-p method))) >> + (when (setq method (gnus-info-method info)) >> + (if (setq cmethod (assoc method methods-cache)) >> + (setq method (cdr cmethod)) >> + (setq cmethod (inline (gnus-server-get-method nil method))) >> + (push (cons method cmethod) methods-cache) >> + (setq method cmethod))) >> + (when (and method >> + (not (setq method-type (cdr (assoc method type-cache))))) >> + (setq method-type >> + (cond >> + ((gnus-secondary-method-p method) >> + 'secondary) >> + ((inline (gnus-server-equal gnus-select-method method)) >> + 'primary) >> + (t >> + 'foreign))) >> + (push (cons method method-type) type-cache)) >> + (if (and method >> + (eq method-type 'foreign)) >> ;; These groups are foreign. Check the level. >> (when (and (<= (gnus-info-level info) foreign-level) >> (setq active (gnus-activate-group group 'scan))) > > Yes, this one is the source of all evil. :-) I do share your frustration. We're right back to the beginning; my original patch changed this code -- a change that proved ineffective. Part of my problem is the lack of hard test data. To that end, I've written yet another patch :). In this patch, gnus-start has both algorithms - the working original and the broken optimization. What's also different is that I have a debug print on every last line of each algorithm. So, here's what I'd like to see. Obviously, install the patch and recompile gnus. Then start gnus, try to trigger the error (in this version, the old algorithm takes precidence so the groups will update correctly). Then switch to the 'kjg' buffer. Please verify that this buffer contains, at least, one occurrance of "DISCREPENCY LOCATED". If it does, please send the contents of this buffer to me.