diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index 2b92598..f2ecf9e 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -429,13 +429,14 @@ class Collection(Base, CollectionMixin):
         UniqueConstraint('creator', 'slug'),
         {})
 
-    def get_collection_items(self, ascending=False):
+    def get_collection_items(self, order_col=None, ascending=False):
         #TODO, is this still needed with self.collection_items being available?
-        order_col = CollectionItem.position
+        if order_col is None:
+            order_col = CollectionItem.position
         if not ascending:
             order_col = desc(order_col)
-        return CollectionItem.query.filter_by(
-            collection=self.id).order_by(order_col)
+        return CollectionItem.query.join(MediaEntry).filter(
+            CollectionItem.collection==self.id).order_by(order_col)
 
 
 class CollectionItem(Base, CollectionItemMixin):
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py
index 738cc05..ad74082 100644
--- a/mediagoblin/user_pages/views.py
+++ b/mediagoblin/user_pages/views.py
@@ -314,7 +314,7 @@ def user_collection(request, page, url_user=None):
     if not collection:
         return render_404(request)
 
-    cursor = collection.get_collection_items()
+    cursor = collection.get_collection_items(order_col=MediaEntry.created)
 
     pagination = Pagination(page, cursor)
     collection_items = pagination()
