diff --git a/src/components/media_modal/media_modal.js b/src/components/media_modal/media_modal.js
index 91601515..95c3b4a9 100644
--- a/src/components/media_modal/media_modal.js
+++ b/src/components/media_modal/media_modal.js
@@ -24,24 +24,34 @@ const MediaModal = {
       return this.currentMedia ? fileTypeService.fileType(this.currentMedia.mimetype) : null
     }
   },
+  created () {
+    document.addEventListener('keyup', e => {
+      if (e.keyCode === 27 && this.showing) { // escape
+        this.hide()
+      }
+    })
+  },
   methods: {
     hide () {
       this.$store.dispatch('closeMediaViewer')
     },
     onVideoDataLoad (e) {
+      if (!e.srcElement) {
+        return
+      }
       if (typeof e.srcElement.webkitAudioDecodedByteCount !== 'undefined') {
         // non-zero if video has audio track
         if (e.srcElement.webkitAudioDecodedByteCount > 0) {
-          this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly
+          this.loopVideo = this.$store.state.config.loopVideo && !this.$store.state.config.loopVideoSilentOnly
         }
       } else if (typeof e.srcElement.mozHasAudio !== 'undefined') {
         // true if video has audio track
         if (e.srcElement.mozHasAudio) {
-          this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly
+          this.loopVideo = this.$store.state.config.loopVideo && !this.$store.state.config.loopVideoSilentOnly
         }
       } else if (typeof e.srcElement.audioTracks !== 'undefined') {
         if (e.srcElement.audioTracks.length > 0) {
-          this.loopVideo = this.loopVideo && !this.$store.state.config.loopVideoSilentOnly
+          this.loopVideo = this.$store.state.config.loopVideo && !this.$store.state.config.loopVideoSilentOnly
         }
       }
     }
diff --git a/src/components/media_modal/media_modal.vue b/src/components/media_modal/media_modal.vue
index 6e291ac5..c8b4c306 100644
--- a/src/components/media_modal/media_modal.vue
+++ b/src/components/media_modal/media_modal.vue
@@ -7,8 +7,8 @@
       :src="currentMedia.url"
       @click.stop=""
       controls autoplay
-      :loop="loopVideo"
-      @loadeddata="onVideoDataLoad">
+      @loadeddata="onVideoDataLoad" 
+      :loop="loopVideo">
     </video>
   </div>
 </template>
diff --git a/src/modules/media_viewer.js b/src/modules/media_viewer.js
index 27714bae..a24b408d 100644
--- a/src/modules/media_viewer.js
+++ b/src/modules/media_viewer.js
@@ -28,7 +28,6 @@ const mediaViewer = {
     },
     setCurrent ({ commit, state }, current) {
       const index = state.media.indexOf(current)
-      console.log(index, current)
       commit('setCurrent', index || 0)
     },
     closeMediaViewer ({ commit }) {