diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index cbef1ed3b5071719134279616d0ef14ba3b0b602..5444ba6a205532a55751c4d4f0fe12ed8ee9dda7 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -132,7 +132,11 @@ module Gitlab
       delete ":id/members/:user_id" do
         authorize! :admin_project, user_project
         users_project = user_project.users_projects.find_by_user_id params[:user_id]
-        users_project.destroy
+        unless users_project.nil?
+          users_project.destroy
+        else
+          {:message => "Access revoked", :id => params[:user_id].to_i}
+        end
       end
 
       # Get project hooks
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index c2244210bcf29da26c977e2a06dda8b91516d989..8351b4bf8bb50ef4a897089d40ecdc3b868b3cf1 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -167,6 +167,17 @@ describe Gitlab::API do
     end
   end
 
+  describe "DELETE /projects/:id/members/:user_id" do
+    it "should return 200 OK when the user was not member" do
+      expect {
+        delete api("/projects/#{project.id}/members/1000000", user)
+      }.to change { UsersProject.count }.by(0)
+      response.status.should == 200
+      json_response['message'].should == "Access revoked"
+      json_response['id'].should == 1000000
+    end
+  end
+
   describe "GET /projects/:id/hooks" do
     it "should return project hooks" do
       get api("/projects/#{project.id}/hooks", user)