diff --git a/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6 b/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6
index d5439c7323f..44b9d32325c 100644
--- a/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6
+++ b/app/assets/javascripts/discourse/helpers/icon-or-image.js.es6
@@ -1,7 +1,14 @@
import { htmlHelper } from 'discourse-common/lib/helpers';
import { iconHTML } from 'discourse-common/lib/icon-library';
-export default htmlHelper(function(str) {
- if (Ember.isEmpty(str)) { return ""; }
- return (str.indexOf('fa-') === 0) ? iconHTML(str.replace('fa-', '')) : ``;
+export default htmlHelper(function({ icon, image }) {
+ if (!Ember.isEmpty(image)) {
+ return `
`;
+ }
+
+ if (Ember.isEmpty(icon) || icon.indexOf('fa-') !== 0) {
+ return '';
+ }
+
+ return iconHTML(icon.replace('fa-', ''));
});
diff --git a/app/assets/javascripts/discourse/templates/components/badge-button.hbs b/app/assets/javascripts/discourse/templates/components/badge-button.hbs
index 8116e5195be..4dd20f5cdb0 100644
--- a/app/assets/javascripts/discourse/templates/components/badge-button.hbs
+++ b/app/assets/javascripts/discourse/templates/components/badge-button.hbs
@@ -1,3 +1,3 @@
-{{icon-or-image badge.icon}}
+{{icon-or-image badge}}
{{badge.name}}
{{yield}}
diff --git a/app/assets/javascripts/discourse/templates/components/badge-card.hbs b/app/assets/javascripts/discourse/templates/components/badge-card.hbs
index e211aaec06b..4d30b969767 100644
--- a/app/assets/javascripts/discourse/templates/components/badge-card.hbs
+++ b/app/assets/javascripts/discourse/templates/components/badge-card.hbs
@@ -7,7 +7,7 @@