diff --git a/app/assets/javascripts/labels_select.js.coffee b/app/assets/javascripts/labels_select.js.coffee
index 39a32f903d423c11b8b0f33f789e589b513e3f5c..ce630dcacb31e894f08a74e0f298a501ba8e5549 100644
--- a/app/assets/javascripts/labels_select.js.coffee
+++ b/app/assets/javascripts/labels_select.js.coffee
@@ -293,6 +293,7 @@ class @LabelsSelect
           else if selectedLabels.length is 1
             selectedLabels[0]
           else
+            console.log selectedLabels.length, defaultLabel
             defaultLabel
         defaultLabel: defaultLabel
         fieldName: $dropdown.data('field-name')
diff --git a/app/helpers/issuables_helper.rb b/app/helpers/issuables_helper.rb
index a3a8c7d5ff90c17b662487c840158b79037e8481..114cf804d6fe0512e1f71dedfa06c6aa894b26eb 100644
--- a/app/helpers/issuables_helper.rb
+++ b/app/helpers/issuables_helper.rb
@@ -10,10 +10,11 @@ module IssuablesHelper
   def multi_label_name(current_labels, default_label)
     # current_labels may be a string from before
     if current_labels.is_a?(Array) && current_labels.any?
+      title = current_labels[0].try(:title) || current_labels[0]
       if current_labels.count > 1
-        "#{current_labels[0]} +#{current_labels.count - 1} more"
+        "#{title} +#{current_labels.count - 1} more"
       else
-        current_labels[0]
+        title
       end
     elsif current_labels.is_a?(String)
       if current_labels.nil? || current_labels.empty?
diff --git a/app/views/shared/issuable/_label_dropdown.html.haml b/app/views/shared/issuable/_label_dropdown.html.haml
index 937dc21019391d33a90c39f5811dfd11f1a09287..36a1ac7664eedc3f8149786cc25b69fdd9d66a63 100644
--- a/app/views/shared/issuable/_label_dropdown.html.haml
+++ b/app/views/shared/issuable/_label_dropdown.html.haml
@@ -14,9 +14,11 @@
 
 - if selected.present?
   - if selected.respond_to?('any?')
-    - selected = project.labels.find(selected)
+    - selected = project.labels.find_by_id(selected) || selected
     - selected.each do |label|
-      = hidden_field_tag data_options[:field_name], label.id, id: nil, data: { title: label.title }
+      - id = label.try(:id) || label
+      - title = label.try(:title) || label
+      = hidden_field_tag data_options[:field_name], id, id: nil, data: { title: 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.nil?) }
diff --git a/app/views/shared/issuable/_milestone_dropdown.html.haml b/app/views/shared/issuable/_milestone_dropdown.html.haml
index ec1864b5536784da49345ad9394faab42e47ecd2..9dd54546cb61cd3f8fe9c6a75108a5350e843450 100644
--- a/app/views/shared/issuable/_milestone_dropdown.html.haml
+++ b/app/views/shared/issuable/_milestone_dropdown.html.haml
@@ -1,4 +1,5 @@
 - project = @target_project || @project
+- extra_class = extra_class || ''
 - selected_text = project.milestones.find_by_id(selected).try(:name)
 - if selected.present?
   = hidden_field_tag(name, selected)
diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml
index e020a7d4d00ccedca7669c011b2008b67041a8ac..61fb1bd16428ac4a57642164d00c32709d6f5fbd 100644
--- a/app/views/shared/issuable/_sidebar.html.haml
+++ b/app/views/shared/issuable/_sidebar.html.haml
@@ -126,11 +126,11 @@
               %span.no-value None
           .selectbox.hide-collapsed
             - issuable.labels_array.each do |label|
-              = hidden_field_tag "#{issuable.to_ability_name}[label_names][]", label.id, id: nil
+              = hidden_field_tag "#{issuable.to_ability_name}[label_names][]", label.id, id: nil, data: { title: label.title }
             .dropdown
-              %button.dropdown-menu-toggle.js-label-select.js-multiselect{type: "button", data: {toggle: "dropdown", field_name: "#{issuable.to_ability_name}[label_names][]", ability_name: issuable.to_ability_name, show_no: "true", show_any: "true", project_id: (@project.id if @project), issue_update: issuable_json_path(issuable), labels: (namespace_project_labels_path(@project.namespace, @project, :json) if @project)}}
-                %span.dropdown-toggle-text
-                  Label
+              %button.dropdown-menu-toggle.js-label-select.js-multiselect{type: "button", data: {toggle: "dropdown", default_label: "Labels", field_name: "#{issuable.to_ability_name}[label_names][]", ability_name: issuable.to_ability_name, show_no: "true", show_any: "true", project_id: (@project.id if @project), issue_update: issuable_json_path(issuable), labels: (namespace_project_labels_path(@project.namespace, @project, :json) if @project)}}
+                %span.dropdown-toggle-text{ class: ("is-default" if issuable.labels_array.empty?)}
+                  = multi_label_name(issuable.labels_array, "Labels")
                 = icon('chevron-down')
               .dropdown-menu.dropdown-select.dropdown-menu-paging.dropdown-menu-labels.dropdown-menu-selectable
                 = render partial: "shared/issuable/label_page_default"