Ok i'll try and splain this the best i can. I have a search engine for searching member profiles, it works great but for one glitch. Now the search results are dumped into an array (members_array), which i store in a session, for display over multiple pages. I HAVE to do it this way because the ordering i need can't be done over multiple queries. Now all that works fine, my problem is finding a reliable way to determine when to run the query creating a new members_array and when to display from the array that already exists. In my original code i simply told it to run the query if the array didn't exist, and destroyed the array when someone travled out of the search results page. The problem with that is you can't leave the search results (say to the home page) and then travel back to them via the browser back button. When you left, the array was destoryed, therefore there was no array to display when traveling back. Ok in my second try (not to well thought out) i sent a "new search" indicator var with the search criteria, rather than using the exsistance of the array to determine whether to run the query. This fixed the original back button problem but created a new one. The problem is that the search criteria is sent in a get, so the the indicator var is written into the url, and everytime you move to the first page of returns (or refresh it) it reruns the query. This changes the ordering (because it's partially random) of the results so what you may have gone back to look at could no longer be there. So all this comes down to finding a way to determine when to run the query and when not to. I hope all this is understandable. I didn't post any code because i'm really looking for ideas (theory) on how to fix this, not code to cut and paste. Thanks in advance for any help you can send my way.