diff --git a/app/assets/javascripts/discourse/initializers/deprecations.js.es6 b/app/assets/javascripts/discourse/initializers/deprecations.js.es6
new file mode 100644
index 000000000..f25c7ec10
--- /dev/null
+++ b/app/assets/javascripts/discourse/initializers/deprecations.js.es6
@@ -0,0 +1,21 @@
+var deprecatedViewHelpers = {
+  inputTip: 'input-tip'
+};
+
+export default {
+  name: 'deprecations',
+  initialize: function(container) {
+    Ember.keys(deprecatedViewHelpers).forEach(function(old) {
+      var newName = deprecatedViewHelpers[old];
+      Ember.Handlebars.registerHelper(old, function(options) {
+        Em.warn("The `" + old +"` helper is deprecated. Use `" + newName + "` instead.");
+        var helper = container.lookupFactory('view:' + newName);
+        var hash = options.hash,
+            types = options.hashTypes;
+
+        Discourse.Utilities.normalizeHash(hash, types);
+        return Ember.Handlebars.helpers.view.call(this, helper, options);
+      });
+    });
+  }
+};
diff --git a/app/assets/javascripts/discourse/initializers/view-helpers.js.es6 b/app/assets/javascripts/discourse/initializers/view-helpers.js.es6
new file mode 100644
index 000000000..97ab6e911
--- /dev/null
+++ b/app/assets/javascripts/discourse/initializers/view-helpers.js.es6
@@ -0,0 +1,21 @@
+var helpers = ['input-tip'];
+
+/**
+  Creates view helpers for some views. Many of these should probably be converted
+  into components in the long term as it's a better fit.
+**/
+export default {
+  name: 'view-hlpers',
+  initialize: function(container) {
+    helpers.forEach(function(h) {
+      Ember.Handlebars.registerHelper(h, function(options) {
+        var helper = container.lookupFactory('view:' + h);
+        var hash = options.hash,
+            types = options.hashTypes;
+
+        Discourse.Utilities.normalizeHash(hash, types);
+        return Ember.Handlebars.helpers.view.call(this, helper, options);
+      });
+    });
+  }
+};
diff --git a/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars b/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars
index 0c0ecf277..4dfa9d191 100644
--- a/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/modal/create_account.js.handlebars
@@ -7,7 +7,7 @@
           <td style="width:80px" class="label"><label for='new-account-name'>{{i18n user.name.title}}</label></td>
           <td style="width:496px">
           {{textField value=accountName id="new-account-name" autofocus="autofocus"}}
-          &nbsp;{{inputTip validation=nameValidation}}
+          &nbsp;{{input-tip validation=nameValidation}}
           </td>
       </tr>
       <tr class="instructions">
@@ -19,7 +19,7 @@
             <td class="label"><label for='new-account-email'>{{i18n user.email.title}}</label></td>
             <td>
             {{input value=accountEmail id="new-account-email" disabled=emailValidated}}
-            &nbsp;{{inputTip validation=emailValidation}}
+            &nbsp;{{input-tip validation=emailValidation}}
             </td>
       </tr>
       <tr class="instructions">
@@ -31,7 +31,7 @@
             <td class="label"><label for='new-account-username'>{{i18n user.username.title}}</label></td>
             <td>
             {{input value=accountUsername id="new-account-username" maxlength="15"}}
-            &nbsp;{{inputTip validation=usernameValidation}}
+            &nbsp;{{input-tip validation=usernameValidation}}
             </td>
       </tr>
       <tr class="instructions">
@@ -44,7 +44,7 @@
           <td class="label"><label for='new-account-password'>{{i18n user.password.title}}</label></td>
           <td>
           {{input type="password" value=accountPassword id="new-account-password"}}
-          &nbsp;{{inputTip validation=passwordValidation}}
+          &nbsp;{{input-tip validation=passwordValidation}}
           </td>
       </tr>
       <tr class="instructions">
diff --git a/app/assets/javascripts/discourse/views/input_tip_view.js b/app/assets/javascripts/discourse/views/input-tip.js.es6
similarity index 83%
rename from app/assets/javascripts/discourse/views/input_tip_view.js
rename to app/assets/javascripts/discourse/views/input-tip.js.es6
index 597609205..b2d0709c9 100644
--- a/app/assets/javascripts/discourse/views/input_tip_view.js
+++ b/app/assets/javascripts/discourse/views/input-tip.js.es6
@@ -6,7 +6,7 @@
   @namespace Discourse
   @module Discourse
 **/
-Discourse.InputTipView = Discourse.View.extend({
+export default Discourse.View.extend({
   classNameBindings: [':tip', 'good', 'bad'],
 
   shouldRerender: Discourse.View.renderIfChanged('validation'),
@@ -21,5 +21,3 @@ Discourse.InputTipView = Discourse.View.extend({
     }
   }
 });
-
-Discourse.View.registerHelper('inputTip', Discourse.InputTipView);
\ No newline at end of file