diff --git a/app/assets/javascripts/boards/components/board.js.coffee b/app/assets/javascripts/boards/components/board.js.coffee
index fde62ba569b051f3bf6473a136319378e1177cae..c6bd177b2a89a2a8ef3dcd5326329444e53590ea 100644
--- a/app/assets/javascripts/boards/components/board.js.coffee
+++ b/app/assets/javascripts/boards/components/board.js.coffee
@@ -10,7 +10,7 @@ Board = Vue.extend
     isPreset: ->
       typeof this.board.id != 'number'
   ready: ->
-    Sortable.create this.$el.parentNode,
+    this.sortable = Sortable.create this.$el.parentNode,
       group: 'boards'
       animation: 150
       draggable: '.is-draggable'
@@ -19,5 +19,7 @@ Board = Vue.extend
       ghostClass: 'is-ghost'
       onUpdate: (e) ->
         BoardsStore.moveBoard(e.oldIndex + 1, e.newIndex + 1)
+  beforeDestroy: ->
+    this.sortable.destroy()
 
 Vue.component('board', Board)
diff --git a/app/assets/javascripts/boards/components/board_delete.js.coffee b/app/assets/javascripts/boards/components/board_delete.js.coffee
index d08831ddafad3376d9a455cdbe2b17b1673efcdc..47fa22b0ab0768a10cf75a660d047d50c674c8f8 100644
--- a/app/assets/javascripts/boards/components/board_delete.js.coffee
+++ b/app/assets/javascripts/boards/components/board_delete.js.coffee
@@ -1,5 +1,11 @@
 BoardDelete = Vue.extend
   props:
     boardId: Number
+  methods:
+    deleteBoard: ->
+      $(this.$el).tooltip('destroy')
+
+      if confirm('Are you sure you want to delete this list?')
+        BoardsStore.removeBoard(this.boardId)
 
 Vue.component 'board-delete', BoardDelete
diff --git a/app/assets/javascripts/boards/components/board_list.js.coffee b/app/assets/javascripts/boards/components/board_list.js.coffee
index b063cf4f2ee64a9cd656cd2d6cc49b5862e36e76..494f61f604728be9c6a3c2a89d1fc9def2ebf869 100644
--- a/app/assets/javascripts/boards/components/board_list.js.coffee
+++ b/app/assets/javascripts/boards/components/board_list.js.coffee
@@ -56,5 +56,7 @@ BoardList = Vue.extend
     this.$els.list.onscroll = =>
       if (this.scrollTop() > this.scrollHeight() - this.scrollOffset) and !this.loadMore
         this.loadFromLastId()
+  beforeDestroy: ->
+    this.sortable.destroy()
 
 Vue.component('board-list', BoardList)
diff --git a/app/assets/javascripts/boards/stores/boards_store.js.coffee b/app/assets/javascripts/boards/stores/boards_store.js.coffee
index 8d28c24a2b1f316c01e1648049eb4248ec43465f..d008cdd7d03f806bf93927979566bf45a96ae4ae 100644
--- a/app/assets/javascripts/boards/stores/boards_store.js.coffee
+++ b/app/assets/javascripts/boards/stores/boards_store.js.coffee
@@ -6,6 +6,9 @@
       author: {}
       assignee: {}
       milestone: {}
+  removeBoard: (id) ->
+    BoardsStore.state.boards = _.reject BoardsStore.state.boards, (board) ->
+      board.id is id
   moveBoard: (oldIndex, newIndex) ->
     boardFrom = _.find BoardsStore.state.boards, (board) ->
       board.index is oldIndex
diff --git a/app/assets/stylesheets/pages/boards.scss b/app/assets/stylesheets/pages/boards.scss
index 65c29bea9057abf54a965bac8661431969533700..4151d34094bbef03c1970611461bc32fbcb3b6e2 100644
--- a/app/assets/stylesheets/pages/boards.scss
+++ b/app/assets/stylesheets/pages/boards.scss
@@ -110,6 +110,7 @@
   color: $gray-darkest;
   background-color: transparent;
   border: 0;
+  outline: 0;
 
   &:hover {
     color: $gl-link-color;
diff --git a/app/views/projects/boards/components/_board.html.haml b/app/views/projects/boards/components/_board.html.haml
index 15eae09ea90424ee7fcd173a6547de2ce9eaa782..f49a197008216a0321836b8eb1c48d3a7121c746 100644
--- a/app/views/projects/boards/components/_board.html.haml
+++ b/app/views/projects/boards/components/_board.html.haml
@@ -6,8 +6,8 @@
           {{ board.title }}
           %span.pull-right
             {{ board.issues.length }}
-          %board-delete{ "inline-template" => true, "v-if" => "!isPreset" }
-            %button.board-delete.has-tooltip.pull-right{ type: "button", title: "Delete board", data: { placement: "bottom" } }
+          %board-delete{ "inline-template" => true, "v-if" => "!isPreset", ":board-id" => "board.id" }
+            %button.board-delete.has-tooltip.pull-right{ type: "button", title: "Delete board", data: { placement: "bottom" }, "@click" => "deleteBoard" }
               %span.sr-only
                 Delete board
               = icon("trash")
diff --git a/vendor/assets/javascripts/clipboard.js b/vendor/assets/javascripts/clipboard.js
index 1b1f4f0bd63e9f38ea635607ab0aa9971e5c650d..39d7d2306f8eca30429df7e7af6c9f2b54151037 100644
--- a/vendor/assets/javascripts/clipboard.js
+++ b/vendor/assets/javascripts/clipboard.js
@@ -154,12 +154,12 @@ function E () {
 E.prototype = {
 	on: function (name, callback, ctx) {
     var e = this.e || (this.e = {});
-    
+
     (e[name] || (e[name] = [])).push({
       fn: callback,
       ctx: ctx
     });
-    
+
     return this;
   },
 
@@ -169,7 +169,7 @@ E.prototype = {
       self.off(name, fn);
       callback.apply(ctx, arguments);
     };
-    
+
     return this.on(name, fn, ctx);
   },
 
@@ -178,11 +178,11 @@ E.prototype = {
     var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
     var i = 0;
     var len = evtArr.length;
-    
+
     for (i; i < len; i++) {
       evtArr[i].fn.apply(evtArr[i].ctx, data);
     }
-    
+
     return this;
   },
 
@@ -190,21 +190,21 @@ E.prototype = {
     var e = this.e || (this.e = {});
     var evts = e[name];
     var liveEvents = [];
-    
+
     if (evts && callback) {
       for (var i = 0, len = evts.length; i < len; i++) {
         if (evts[i].fn !== callback) liveEvents.push(evts[i]);
       }
     }
-    
+
     // Remove event from queue to prevent memory leak
     // Suggested by https://github.com/lazd
     // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
 
-    (liveEvents.length) 
+    (liveEvents.length)
       ? e[name] = liveEvents
       : delete e[name];
-    
+
     return this;
   }
 };
@@ -618,4 +618,4 @@ exports['default'] = Clipboard;
 module.exports = exports['default'];
 
 },{"./clipboard-action":6,"delegate-events":1,"tiny-emitter":5}]},{},[7])(7)
-});
\ No newline at end of file
+});