diff --git a/app/lib/AudioPlayer.coffee b/app/lib/AudioPlayer.coffee
index 8301d5295..6b1b95c65 100644
--- a/app/lib/AudioPlayer.coffee
+++ b/app/lib/AudioPlayer.coffee
@@ -80,7 +80,7 @@ class AudioPlayer extends CocoClass
       @soundsToPlayWhenLoaded[name] = volume
 
   playSound: (name, volume=1) ->
-    createjs.Sound.play name, {volume: me.get('volume') * volume}
+    createjs.Sound.play name, {volume: (me.get('volume') ? 1) * volume}
 
 #  # TODO: load Interface sounds somehow, somewhere, somewhen
 
diff --git a/app/lib/Tracker.coffee b/app/lib/Tracker.coffee
index 5bd85345a..6f585e473 100644
--- a/app/lib/Tracker.coffee
+++ b/app/lib/Tracker.coffee
@@ -22,7 +22,7 @@ module.exports = class Tracker
     return unless me and olark?
     olark 'api.chat.updateVisitorStatus', snippet: ["User ID: #{me.id}"]
     return if me.get("anonymous")
-    olark 'api.visitor.updateEmailAddress', emailAddress: me.get("email")
+    olark 'api.visitor.updateEmailAddress', emailAddress: me.get("email") if me.get('email')
     olark 'api.chat.updateVisitorNickname', snippet: me.displayName()
 
   updatePlayState: (level, session) ->
@@ -33,7 +33,6 @@ module.exports = class Tracker
       "User ID: #{me.id}"
       "Session ID: #{session.id}"
       "Level: #{level.get('name')}"
-
     ]
     olark 'api.chat.updateVisitorStatus', snippet: snippet
 
diff --git a/app/styles/play/level/tome/cast_button.sass b/app/styles/play/level/tome/cast_button.sass
index 01f3c1800..3b204561d 100644
--- a/app/styles/play/level/tome/cast_button.sass
+++ b/app/styles/play/level/tome/cast_button.sass
@@ -88,6 +88,13 @@
       border-top-left-radius: 6px
       border-bottom-left-radius: 6px
 
+      @media screen and (max-width: 1440px)
+        font-size: 16px
+      @media screen and (max-width: 1280px)
+        font-size: 14px
+      @media screen and (max-width: 1024px)
+        font-size: 12px
+
     .cast-options-button
       width: 20%
       width: -webkit-calc(40px)
diff --git a/app/views/play/level/tome/spell_view.coffee b/app/views/play/level/tome/spell_view.coffee
index a49e678d0..e6714feab 100644
--- a/app/views/play/level/tome/spell_view.coffee
+++ b/app/views/play/level/tome/spell_view.coffee
@@ -352,7 +352,7 @@ module.exports = class SpellView extends View
     #@recompileValid = not aether.getAllProblems().length
     valid = not aether.getAllProblems().length
     cursorPosition = @ace.getCursorPosition()
-    currentLine = @aceDoc.$lines[cursorPosition.row].replace(/[ \t]*\/\/[^"']*/g, '').trimRight()  # trim // unless inside "
+    currentLine = _.string.rtrim(@aceDoc.$lines[cursorPosition.row].replace(/[ \t]*\/\/[^"']*/g, ''))  # trim // unless inside "
     endOfLine = cursorPosition.column >= currentLine.length  # just typed a semicolon or brace, for example
     beginningOfLine = not currentLine.substr(0, cursorPosition.column).trim().length  # uncommenting code, for example
     #console.log "finished?", valid, endOfLine, beginningOfLine, cursorPosition, currentLine.length, aether, new Date() - 0, currentLine