diff --git a/app/lib/LevelBus.coffee b/app/lib/LevelBus.coffee
index 5d0732286..2462dd508 100644
--- a/app/lib/LevelBus.coffee
+++ b/app/lib/LevelBus.coffee
@@ -29,7 +29,8 @@ module.exports = class LevelBus extends Bus
     super(arguments...)
     @changedSessionProperties = {}
     if application.isProduction()
-      @saveSession = _.debounce(@reallySaveSession, 4000, {maxWait: 10000})  # Save slower on production.
+      #@saveSession = _.debounce(@reallySaveSession, 4000, {maxWait: 10000})  # Save slower on production.
+      @saveSession = _.debounce(@reallySaveSession, 10000, {maxWait: 30000})  # Save even slower during HoC.
     else
       @saveSession = _.debounce(@reallySaveSession, 1000, {maxWait: 5000})  # Save quickly in development.
     @playerIsIdle = false
diff --git a/app/views/play/level/tome/SpellView.coffee b/app/views/play/level/tome/SpellView.coffee
index 65130b06b..79a1c8d7c 100644
--- a/app/views/play/level/tome/SpellView.coffee
+++ b/app/views/play/level/tome/SpellView.coffee
@@ -834,6 +834,7 @@ module.exports = class SpellView extends CocoView
     hashValue = aether.raw + aetherProblem.message
     return if hashValue of @savedProblems
     @savedProblems[hashValue] = true
+    return unless Math.random() < 0.01  # Let's only save a tiny fraction of these during HoC to reduce writes.
 
     # Save new problem
     @userCodeProblem = new UserCodeProblem()