10
@ Fredrik: To be more precise on why this is happening, XOOPS uses cookies to mark a topic as read. The official specification for cookies is that they can maximally be 4Kb big. XOOPS serializes the topic when writing to the cookie, this practically means the cookie can on average hold about 100-150 different topcis. Once this amount is reached, no NEW topics can be written to the cookie. From this point the mark read/unread indicator will stop working correctly.
Erratic behaviour, where it updates read/unread status for some topics (the older) but not for others (new topics) is caused because the older topics might still be present in the cookie, making it possible to still change the read/unread flag on them.
Only solution to this problem is to clear your cookies, which will start with a clean sheet. You can also only delete the cookie related to the newbb forum, it's the cookie with name "newbb_topic_lastread".
Now this is a known problem with the current newbb implementation, that's why it's been suggested by other people earlier to use the database instead of cookies for marking topics read/unread.
Hopefully the programmers of the updated newbb will consider this. But I doubt if they will, since it puts more pressure on the database and loading times. Well, we'll see.
Hope this helped.