diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb
index 7fc0a4c40d6e45e36822532684d0f81674c65670..c57b01b10364f8d1dbe511449228328bbf7ccd5f 100644
--- a/app/controllers/events_controller.rb
+++ b/app/controllers/events_controller.rb
@@ -24,7 +24,6 @@ class EventsController < ApplicationController
   # GET /events/new
   def new; end
 
-  # POST /events/preview
   def preview_create
     @event.valid?
     render action: :new
@@ -84,8 +83,8 @@ class EventsController < ApplicationController
 
   def set_events
     # The 3000 limit is purely arbitrary...
-    @events = apply_scopes Event.moderated.limit(3000)
-    @events = @events.limit(20) if params[:format] == 'rss'
+    @events = apply_scopes Event.includes(:tags).moderated.limit(3000).order('events.start_time asc')
+    @events = @events.limit(20).order('events.id desc') if params[:format] == 'rss'
   end
 
   def new_event
diff --git a/app/models/event.rb b/app/models/event.rb
index bfb91513ef6fd6869cf236a596abf956ad681f42..51a254ffea68a0bfd1e87c70d47a294ab0d41118 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -40,7 +40,6 @@ class Event < ApplicationRecord
 
   after_destroy EventCallbacks
 
-  default_scope { includes(:base_tags).order('events.id desc') }
   scope :moderated, ->(*) { where moderated: true }
   scope :unmoderated, ->(*) { where moderated: false }
   scope :past, -> { where 'start_time <= ?', Time.zone.now }