diff --git a/app/assets/javascripts/discourse/controllers/preferences_username_controller.js b/app/assets/javascripts/discourse/controllers/preferences_username_controller.js
index b2c31b56a..55d8ff2cf 100644
--- a/app/assets/javascripts/discourse/controllers/preferences_username_controller.js
+++ b/app/assets/javascripts/discourse/controllers/preferences_username_controller.js
@@ -11,6 +11,7 @@ Discourse.PreferencesUsernameController = Discourse.ObjectController.extend({
   saving: false,
   error: false,
   errorMessage: null,
+  newUsername: null,
 
   saveDisabled: function() {
     if (this.get('saving')) return true;
diff --git a/app/assets/javascripts/discourse/routes/user_route.js b/app/assets/javascripts/discourse/routes/user_route.js
index 60b19dc0b..785252378 100644
--- a/app/assets/javascripts/discourse/routes/user_route.js
+++ b/app/assets/javascripts/discourse/routes/user_route.js
@@ -9,6 +9,14 @@
 Discourse.UserRoute = Discourse.Route.extend({
 
   model: function(params) {
+
+    // If we're viewing the currently logged in user, return that object
+    // instead.
+    var currentUser = Discourse.User.current();
+    if (params.username.toLowerCase() === currentUser.get('username_lower')) {
+      return currentUser;
+    }
+
     return Discourse.User.create({username: params.username});
   },
 
diff --git a/app/serializers/current_user_serializer.rb b/app/serializers/current_user_serializer.rb
index d34826f0b..270d51161 100644
--- a/app/serializers/current_user_serializer.rb
+++ b/app/serializers/current_user_serializer.rb
@@ -12,7 +12,8 @@ class CurrentUserSerializer < BasicUserSerializer
              :topic_count,
              :enable_quoting,
              :external_links_in_new_tab,
-             :trust_level
+             :trust_level,
+             :can_edit
 
   def include_site_flagged_posts_count?
     object.staff?
@@ -30,4 +31,8 @@ class CurrentUserSerializer < BasicUserSerializer
     PostAction.flagged_posts_count
   end
 
+  def can_edit
+    true
+  end
+
 end