diff --git a/CHANGELOG b/CHANGELOG
index e0676b30ce83cff833dec43b0ee99750eaf17121..b33e25655221ad59fe5f6b43f85b3aff5b8649e2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -9,6 +9,7 @@ v 7.10.0 (unreleased)
   - Improve diff UI
   - Fix alignment of navbar toggle button (Cody Mize)
   - Identical look of selectboxes in UI
+  - Add location field to user profile
 
 v 7.9.0 (unreleased)
   - Add HipChat integration documentation (Stan Hu)
diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb
index 1b9a86ee42c4482d30e57934faec04fdee8e6949..fcdd5b8b1d1314b5c00d9fbf79818686e50d75a9 100644
--- a/app/controllers/profiles_controller.rb
+++ b/app/controllers/profiles_controller.rb
@@ -68,7 +68,7 @@ class ProfilesController < ApplicationController
     params.require(:user).permit(
       :email, :password, :password_confirmation, :bio, :name, :username,
       :skype, :linkedin, :twitter, :website_url, :color_scheme_id, :theme_id,
-      :avatar, :hide_no_ssh_key, :hide_no_password
+      :avatar, :hide_no_ssh_key, :hide_no_password, :location
     )
   end
 end
diff --git a/app/views/profiles/show.html.haml b/app/views/profiles/show.html.haml
index 409b6b5a193e3aa09c31583d418b6fb94aa9dcf6..5a501e4314984ba700bf0be11c356b34c323d02b 100644
--- a/app/views/profiles/show.html.haml
+++ b/app/views/profiles/show.html.haml
@@ -53,6 +53,9 @@
       .form-group
         = f.label :website_url, 'Website', class: "control-label"
         .col-sm-10= f.text_field :website_url, class: "form-control"
+      .form-group
+        = f.label :location, 'Location', class: "control-label"
+        .col-sm-10= f.text_field :location, class: "form-control"
       .form-group
         = f.label :bio, class: "control-label"
         .col-sm-10
diff --git a/db/migrate/20150320234437_add_location_to_user.rb b/db/migrate/20150320234437_add_location_to_user.rb
new file mode 100644
index 0000000000000000000000000000000000000000..32731d37d7558c4a01a3577372ea9ea8463f11d2
--- /dev/null
+++ b/db/migrate/20150320234437_add_location_to_user.rb
@@ -0,0 +1,5 @@
+class AddLocationToUser < ActiveRecord::Migration
+  def change
+    add_column :users, :location, :string
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 1be3782dcb310061d6572e2ee9ec918425181ce1..e1a5b70532a7435a6c2e7d8c276e62a7639e45c3 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20150313012111) do
+ActiveRecord::Schema.define(version: 20150320234437) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -473,6 +473,7 @@ ActiveRecord::Schema.define(version: 20150313012111) do
     t.boolean  "password_automatically_set",    default: false
     t.string   "bitbucket_access_token"
     t.string   "bitbucket_access_token_secret"
+    t.string   "location"
   end
 
   add_index "users", ["admin"], name: "index_users_on_admin", using: :btree
diff --git a/features/steps/profile/profile.rb b/features/steps/profile/profile.rb
index bfbfe7af1998f6a8772478d4174553859654c484..791982d16c3b433b87cac034ddc168d813965b94 100644
--- a/features/steps/profile/profile.rb
+++ b/features/steps/profile/profile.rb
@@ -11,6 +11,7 @@ class Spinach::Features::Profile < Spinach::FeatureSteps
     fill_in "user_linkedin", with: "testlinkedin"
     fill_in "user_twitter", with: "testtwitter"
     fill_in "user_website_url", with: "testurl"
+    fill_in "user_location", with: "Ukraine"
     click_button "Save changes"
     @user.reload
   end
@@ -20,6 +21,7 @@ class Spinach::Features::Profile < Spinach::FeatureSteps
     @user.linkedin.should == 'testlinkedin'
     @user.twitter.should == 'testtwitter'
     @user.website_url.should == 'testurl'
+    find("#user_location").value.should == "Ukraine"
   end
 
   step 'I change my avatar' do