diff --git a/app/assets/javascripts/labels_select.js.coffee b/app/assets/javascripts/labels_select.js.coffee
index d1225eb0851d86679741a164d50eea61fb6d5394..39a32f903d423c11b8b0f33f789e589b513e3f5c 100644
--- a/app/assets/javascripts/labels_select.js.coffee
+++ b/app/assets/javascripts/labels_select.js.coffee
@@ -27,6 +27,10 @@ class @LabelsSelect
       $newLabelCreateButton = $('.js-new-label-btn')
       selectedLabels = []
 
+      $("input[name='#{$dropdown.data('field-name')}']").each ->
+        title = $(this).data('title')
+        selectedLabels.push($(this).data('title')) if title
+
       $newLabelError.hide()
       $loading = $block.find('.block-loading').fadeOut()
 
diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml
index b7fbfcb6b5f7104628f66cb2ca147db4b652abe9..8820172a46e48966612920ee4c86bed5ad1118f7 100644
--- a/app/views/shared/issuable/_form.html.haml
+++ b/app/views/shared/issuable/_form.html.haml
@@ -66,10 +66,12 @@
         - has_labels = issuable.project.labels.any?
         - selected_labels = issuable.label_ids.any? ? issuable.label_ids : nil
         - label_dropdown_toggle = issuable.labels.map { |label| label.title }
+        - field_name = "#{issuable.class.model_name.param_key}[label_ids][]"
         = f.label :label_ids, "Labels", class: "control-label #{"col-lg-4" if has_due_date}"
+        = hidden_field_tag field_name, ""
         .col-sm-10{ class: "#{"col-lg-8" if has_due_date} #{'issuable-form-padding-top' if !has_labels}" }
           .issuable-form-select-holder
-            = render "shared/issuable/label_dropdown", classes: ["js-issuable-form-dropdown"], selected: selected_labels, selected_toggle: label_dropdown_toggle, data_options: { field_name: "#{issuable.class.model_name.param_key}[label_ids][]", show_any: "false" }
+            = render "shared/issuable/label_dropdown", classes: ["js-issuable-form-dropdown"], selected: selected_labels, selected_toggle: label_dropdown_toggle, data_options: { field_name: field_name, show_any: "false" }
     - if has_due_date
       .col-lg-6
         .form-group
diff --git a/app/views/shared/issuable/_label_dropdown.html.haml b/app/views/shared/issuable/_label_dropdown.html.haml
index 670c2db47950469f217ed2066f81517247cba462..937dc21019391d33a90c39f5811dfd11f1a09287 100644
--- a/app/views/shared/issuable/_label_dropdown.html.haml
+++ b/app/views/shared/issuable/_label_dropdown.html.haml
@@ -14,11 +14,12 @@
 
 - if selected.present?
   - if selected.respond_to?('any?')
+    - selected = project.labels.find(selected)
     - selected.each do |label|
-      = hidden_field_tag data_options[:field_name], label, id: nil
+      = hidden_field_tag data_options[:field_name], label.id, id: nil, data: { title: label.title }
 .dropdown
   %button.dropdown-menu-toggle.js-label-select.js-multiselect{class: classes.join(' '), type: "button", data: dropdown_data}
-    %span.dropdown-toggle-text{ class: ("is-default" if selected_toggle) }
+    %span.dropdown-toggle-text{ class: ("is-default" if selected.nil?) }
       = h(multi_label_name(selected_toggle || selected, "Label"))
     = icon('chevron-down')
   .dropdown-menu.dropdown-select.dropdown-menu-paging.dropdown-menu-labels.dropdown-menu-selectable