I think adding a small INT row to the message table called "read" with the default setting of "0" and updating it to "1" when viewed will give you better results as sessions will go away and then show as the message as not have been read, which could be frustrating to people. This doesn't have to be updated if the value is already "1" or the message has been read. Just call the value['read'] along with content of the message and using an IF statement, if the read value is 0 make the update. You could also make it a readcount that adds 1 to the number each time it's read. This information could be used to tell the author that their message has been read and how many times. Hey, just a thought.