Index: src/java/org/apache/wiki/WikiEngine.java
===================================================================
--- src/java/org/apache/wiki/WikiEngine.java	(revision 771034)
+++ src/java/org/apache/wiki/WikiEngine.java	(working copy)
@@ -1041,14 +1041,14 @@
     }
 
     /**
-     *  Returns a collection of all supported InterWiki links.
+     *  Returns an unordered List of all supported InterWiki links.
      *
-     *  @return A Collection of Strings.
+     *  @return An unordered List of InterWiki link Strings.
      */
     @SuppressWarnings("unchecked")
-    public Collection<String> getAllInterWikiLinks()
+    public List<String> getAllInterWikiLinks()
     {
-        Vector<String> v = new Vector<String>();
+        List<String> v = new ArrayList<String>();
 
         for( Enumeration i = m_properties.propertyNames(); i.hasMoreElements(); )
         {
@@ -1064,12 +1064,12 @@
     }
 
     /**
-     *  Returns a collection of all image types that get inlined.
+     *  Returns an unordered List of all image types that get inlined.
      *
-     *  @return A Collection of Strings with a regexp pattern.
+     *  @return An unordered List of Strings with a regexp pattern.
      */
 
-    public Collection<String> getAllInlinedImagePatterns()
+    public List<String> getAllInlinedImagePatterns()
     {
         return JSPWikiMarkupParser.getImagePatterns( this );
     }
@@ -1771,28 +1771,29 @@
     }
 
     /**
-     *  Returns a Collection of WikiPages, sorted in time
+     *  Returns a SortedSet of recent WikiPages, sorted in time
      *  order of last change (i.e. first object is the most
      *  recently changed).  This method also includes attachments.
      *
      *  @param space The WikiSpace for which you want to have the
      *               Recent Changes for.
-     *  @return Collection of WikiPage objects.  In reality, the returned
-     *          collection is a Set, but due to API compatibility reasons,
-     *          we're not changing the signature soon...
+     *  @param since Only return pages changed since this date.  Use
+     *               <code>null</code> to get all pages.
+     *  @return a SortedSet of WikiPages in descending modified order (newest first)
      */
-
-    // FIXME: Should really get a Date object and do proper comparisons.
-    //        This is terribly wasteful.
-    public Collection<WikiPage> getRecentChanges(String space)
+    public SortedSet<WikiPage> getRecentChanges(String space, Date since)
     {
         try
         {
-            Collection<WikiPage>   pages = m_contentManager.getAllPages(space);
+            List<WikiPage> pages = m_contentManager.getAllPages(space);
 
-            TreeSet<WikiPage> sortedPages = new TreeSet<WikiPage>( new PageTimeComparator() );
-
-            sortedPages.addAll( pages );
+            TreeSet<WikiPage> sortedPages = new TreeSet<WikiPage>( PageTimeComparator.DEFAULT_PAGETIME_COMPARATOR );
+            if( since == null )
+                sortedPages.addAll( pages );
+            else
+                for( WikiPage page : pages )
+                    if( page.getLastModified() != null && page.getLastModified().after( since ) )
+                        sortedPages.add( page );
 
             return sortedPages;
         }
@@ -1804,14 +1805,14 @@
     }
 
     /**
-     *  Parses an incoming search request, then
-     *  does a search.
+     *  Parses an incoming search request, then does a search.  The returned List is
+     *  in descending quality order (i.e. best match first).
      *  <P>
      *  The query is dependent on the actual chosen search provider - each one of them has
      *  a language of its own.
      *
      *  @param query The query string
-     *  @return A Collection of SearchResult objects.
+     *  @return An order List of SearchResult objects in descedning quality order.
      *  @throws ProviderException If the searching failed
      *  @throws IOException       If the searching failed
      */
@@ -1819,10 +1820,10 @@
     //
     // FIXME: Should also have attributes attached.
     //
-    public Collection<SearchResult> findPages( String query )
+    public List<SearchResult> findPages( String query )
         throws ProviderException, IOException
     {
-        Collection<SearchResult> results = m_searchManager.findPages( query );
+        List<SearchResult> results = m_searchManager.findPages( query );
 
         return results;
     }
@@ -1900,7 +1901,7 @@
 
 
     /**
-     *  Returns a Collection of WikiPages containing the
+     *  Returns a List of WikiPages containing the
      *  version history of a page.
      *
      *  @param page Name of the page to look for
