diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index fa95e5339..e34c798c2 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -265,7 +265,7 @@ class UsersController < ApplicationController
     requires_parameter(:email)
     user = fetch_user_from_params
     guardian.ensure_can_edit!(user)
-    lower_email = Email.downcase(params[:email])
+    lower_email = Email.downcase(params[:email]).strip
 
     # Raise an error if the email is already in use
     if User.where("email = ?", lower_email).exists?
diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb
index b99926fc7..09bc8d064 100644
--- a/spec/controllers/users_controller_spec.rb
+++ b/spec/controllers/users_controller_spec.rb
@@ -192,6 +192,10 @@ describe UsersController do
         it 'raises an error' do
           lambda { xhr :put, :change_email, username: user.username, email: other_user.email }.should raise_error(Discourse::InvalidParameters)
         end
+
+        it 'raises an error if there is whitespace too' do
+          lambda { xhr :put, :change_email, username: user.username, email: other_user.email + ' ' }.should raise_error(Discourse::InvalidParameters)
+        end
       end
 
       context 'success' do