diff --git a/app/assets/javascripts/discourse/components/combo-box.js.es6 b/app/assets/javascripts/discourse/components/combo-box.js.es6
index d74410e89..fdda11db1 100644
--- a/app/assets/javascripts/discourse/components/combo-box.js.es6
+++ b/app/assets/javascripts/discourse/components/combo-box.js.es6
@@ -32,7 +32,8 @@ export default Ember.Component.extend({
     if (this.get('content')) {
       const self = this;
       this.get('content').forEach(function(o) {
-        let val = o[self.get('valueAttribute')] || o;
+        let val = o[self.get('valueAttribute')];
+        if (typeof val === "undefined") { val = o; }
         if (!Em.isNone(val)) { val = val.toString(); }
 
         const selectedText = (val === selected) ? "selected" : "";
diff --git a/test/javascripts/components/combo-box-test.js.es6 b/test/javascripts/components/combo-box-test.js.es6
index 4badfcd1a..174905548 100644
--- a/test/javascripts/components/combo-box-test.js.es6
+++ b/test/javascripts/components/combo-box-test.js.es6
@@ -15,6 +15,19 @@ componentTest('with objects', {
   }
 });
 
+componentTest('with objects and valueAttribute', {
+  template: '{{combo-box content=items valueAttribute="value"}}',
+  setup() {
+    this.set('items', [{value: 0, name: 'hello'}, {value: 1, name: 'world'}]);
+  },
+
+  test(assert) {
+    assert.ok(this.$('.combobox').length);
+    assert.equal(this.$("select option[value='0']").text(), 'hello');
+    assert.equal(this.$("select option[value='1']").text(), 'world');
+  }
+});
+
 componentTest('with an array', {
   template: '{{combo-box content=items value=value}}',
   setup() {