diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb
index f954a05c8834df8901ea9edf4040b9f40fe32fa0..ab35677fb64c2715d61f3d33647b5405a045dcd9 100644
--- a/app/mailers/notify.rb
+++ b/app/mailers/notify.rb
@@ -102,6 +102,12 @@ class Notify < ActionMailer::Base
   end
 
 
+  def project_was_moved_email(user_project_id)
+    @users_project = UsersProject.find user_project_id
+    @project = @users_project.project
+    mail(to: @users_project.user.email,
+         subject: subject("project was moved"))
+  end
 
   #
   # User
diff --git a/app/models/namespace.rb b/app/models/namespace.rb
index 3c087e26c19a04793f97e34d44ea748e5f85c14f..8c90f5aee26cb84f8c7053009eddc1fe8623e33b 100644
--- a/app/models/namespace.rb
+++ b/app/models/namespace.rb
@@ -59,7 +59,10 @@ class Namespace < ActiveRecord::Base
       if File.exists?(new_path)
         raise "Already exists"
       end
-      system("mv #{old_path} #{new_path}")
+
+      if system("mv #{old_path} #{new_path}")
+        send_update_instructions
+      end
     end
   end
 
@@ -67,4 +70,8 @@ class Namespace < ActiveRecord::Base
     dir_path = File.join(Gitlab.config.gitolite.repos_path, path)
     system("rm -rf #{dir_path}")
   end
+
+  def send_update_instructions
+    projects.each(&:send_move_instructions)
+  end
 end
diff --git a/app/models/project.rb b/app/models/project.rb
index 6a427fddfacba320a861e2aff2102f0c0f81ea27..3e5c912e0b47a22cc5489b9cbfb1dd53da5095e9 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -259,4 +259,10 @@ class Project < ActiveRecord::Base
       merge_requests
     end
   end
+
+  def send_move_instructions
+    self.users_projects.each do |member|
+      Notify.project_was_moved_email(member.id).deliver
+    end
+  end
 end
diff --git a/app/observers/project_observer.rb b/app/observers/project_observer.rb
index bd41e51e8e4c41a62a35fe1445b65f13b8d6f384..b1c694569d7d4cd51bd2d299eb24d2810b776725 100644
--- a/app/observers/project_observer.rb
+++ b/app/observers/project_observer.rb
@@ -3,7 +3,8 @@ class ProjectObserver < ActiveRecord::Observer
     project.update_repository
   end
 
-  def after_save(project)
+  def after_update(project)
+    project.send_move_instructions if project.namespace_id_changed?
   end
 
   def after_destroy(project)
diff --git a/app/views/notify/project_was_moved_email.html.haml b/app/views/notify/project_was_moved_email.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..e81ae70ba5a9f3a979fce9581b0893bdfa4fb72f
--- /dev/null
+++ b/app/views/notify/project_was_moved_email.html.haml
@@ -0,0 +1,25 @@
+%td.content{align: "left", style: "font-family: Helvetica, Arial, sans-serif; padding: 20px 0 0;", valign: "top", width: "600"}
+  %table{border: "0", cellpadding: "0", cellspacing: "0", style: "color: #555; font: normal 11px Helvetica, Arial, sans-serif; margin: 0; padding: 0;", width: "600"}
+    %tr
+      %td{width: "21"}
+      %td
+        %h3
+          = "Project was moved in another location"
+      %td{width: "21"}
+    %tr
+      %td{width: "21"}
+      %td
+        %p
+          Project is now accessible via next link
+          = link_to project_url(@project) do
+            = @project.name_with_namespace
+        %p
+          You may want to update your local repository with new remote:
+        %br
+        %table{border: "0", cellpadding: "0", cellspacing: "0", width: "558"}
+          %tr
+            %td{valign: "top"}
+              %p{ style: "background:#f5f5f5; padding:10px; border:1px solid #ddd" }
+                git remote set-url origin #{@project.ssh_url_to_repo}
+        %br
+      %td{ width: "21"}