diff --git a/changes/changelog.d/151.bugfix b/changes/changelog.d/151.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..801da2a9c98640f13de4af87057b4381084d3feb
--- /dev/null
+++ b/changes/changelog.d/151.bugfix
@@ -0,0 +1 @@
+Fixed queue reorder or track deletion restarting currently playing track (#151)
diff --git a/front/src/components/Sidebar.vue b/front/src/components/Sidebar.vue
index 3f793fe02a05f9b5888b8bfcf23dc367d4f77158..b751dae7b38aa1a7ff98f36ebb9376089b5da60f 100644
--- a/front/src/components/Sidebar.vue
+++ b/front/src/components/Sidebar.vue
@@ -143,8 +143,9 @@ export default {
     ...mapActions({
       cleanTrack: 'queue/cleanTrack'
     }),
-    reorder: function (oldValue, newValue) {
-      this.$store.commit('queue/reorder', {oldValue, newValue})
+    reorder: function (event) {
+      this.$store.commit('queue/reorder', {
+        oldIndex: event.oldIndex, newIndex: event.newIndex})
     },
     scrollToCurrent () {
       let current = $(this.$el).find('[data-tab="queue"] .active')[0]
diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue
index ad90a599528a09cfd287389ddfe22a7585f9fa69..28ace82877837af6e761087b04241b5949fb4ded 100644
--- a/front/src/components/audio/Player.vue
+++ b/front/src/components/audio/Player.vue
@@ -4,7 +4,7 @@
       <audio-track
         ref="currentAudio"
         v-if="renderAudio && currentTrack"
-        :key="(currentIndex, currentTrack.id)"
+        :key="currentTrack.id"
         :is-current="true"
         :start-time="$store.state.player.currentTime"
         :autoplay="$store.state.player.playing"
diff --git a/front/src/components/audio/Track.vue b/front/src/components/audio/Track.vue
index 5b826d2d41913236dfd46161b44c91d485d61de0..08a055f5ca97186d51130e419176338473f9390e 100644
--- a/front/src/components/audio/Track.vue
+++ b/front/src/components/audio/Track.vue
@@ -86,9 +86,15 @@ export default {
       }
     },
     updateDuration: function (e) {
+      if (!this.$refs.audio) {
+        return
+      }
       this.$store.commit('player/duration', this.$refs.audio.duration)
     },
     loaded: function () {
+      if (!this.$refs.audio) {
+        return
+      }
       this.$refs.audio.volume = this.volume
       this.$store.commit('player/resetErrorCount')
       if (this.isCurrent) {
diff --git a/front/src/store/queue.js b/front/src/store/queue.js
index 2890dd1e8f89ad8f83629499b225dae020ae579d..b0a4f732399ebecfe7c1d920c0c9063a0903684b 100644
--- a/front/src/store/queue.js
+++ b/front/src/store/queue.js
@@ -92,10 +92,10 @@ export default {
       if (current) {
         dispatch('player/stop', null, {root: true})
       }
+      commit('splice', {start: index, size: 1})
       if (index < state.currentIndex) {
-        dispatch('currentIndex', state.currentIndex - 1)
+        commit('currentIndex', state.currentIndex - 1)
       }
-      commit('splice', {start: index, size: 1})
       if (current) {
         // we play next track, which now have the same index
         dispatch('currentIndex', index)
diff --git a/front/test/unit/specs/store/queue.spec.js b/front/test/unit/specs/store/queue.spec.js
index 0df7608e75c5d3bdb03c0b99d51fb5d6a75f7f96..3a59117d54f8d833f0a35ffe63884981849030fd 100644
--- a/front/test/unit/specs/store/queue.spec.js
+++ b/front/test/unit/specs/store/queue.spec.js
@@ -158,9 +158,7 @@ describe('store/queue', () => {
         payload: 1,
         params: {state: {currentIndex: 2}},
         expectedMutations: [
-          { type: 'splice', payload: {start: 1, size: 1} }
-        ],
-        expectedActions: [
+          { type: 'splice', payload: {start: 1, size: 1} },
           { type: 'currentIndex', payload: 1 }
         ]
       }, done)