diff --git a/app/helpers/aspects_helper.rb b/app/helpers/aspects_helper.rb
index 8d2e97637e49ca252007790b3b2eea92766cde0d..f2e16a5b953ac6b59d24b1a19ff05f5c0e0c334f 100644
--- a/app/helpers/aspects_helper.rb
+++ b/app/helpers/aspects_helper.rb
@@ -25,7 +25,7 @@ module AspectsHelper
       :method => 'post',
       :class => 'add button',
       'data-aspect_id' => aspect_id,
-      'data-person_id' => person_id 
+      'data-person_id' => person_id
   end
 
   def remove_from_aspect_button(aspect_id, person_id)
@@ -39,7 +39,7 @@ module AspectsHelper
       :method => 'delete',
       :class => 'added button',
       'data-aspect_id' => aspect_id,
-      'data-person_id' => person_id 
+      'data-person_id' => person_id
   end
 
   def aspect_membership_button(aspect, contact, person)
diff --git a/app/views/contacts/sharing.haml b/app/views/contacts/sharing.haml
index 0633f20b1ea164da3d8617384f68fa5f1e8c8374..38675042c66cfb37fc83447cc9540312156708c2 100644
--- a/app/views/contacts/sharing.haml
+++ b/app/views/contacts/sharing.haml
@@ -32,7 +32,7 @@
                   ▼
 
                 .wrapper
-                  %ul.dropdown_list
+                  %ul.dropdown_list{:unSelectable => 'on'}
                     - for aspect in @all_aspects
                       %li{:data => {:aspect_id => aspect.id}}
                         = check_box_tag "yo", "hey", aspect.contacts.include?(contact)
diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml
index 4722bdd6d73d65d72d36a00988e64d842819d121..ecd3f786699c8bbf084c7d77bd82c2e6e99cb1c1 100644
--- a/config/locales/diaspora/en.yml
+++ b/config/locales/diaspora/en.yml
@@ -378,7 +378,6 @@ en:
       gender: "gender"
       born: "birthday"
       in_aspects: "in aspects"
-      cannot_remove: "Cannot remove %{name} from last aspect. (If you want to disconnect from this person you must remove contact.)"
       remove_from: "Remove %{name} from %{aspect}?"
     helper:
       results_for: " results for %{params}"
@@ -562,7 +561,6 @@ en:
       new: "New %{type} from %{from}"
     contact_list:
       all_contacts: "All contacts"
-      cannot_remove: "Cannot remove person from last aspect. (If you want to disconnect from this person you must remove contact.)"
     stream_element:
       like: "I like this"
       dislike: "I dislike this"
diff --git a/config/locales/javascript/javascript.en.yml b/config/locales/javascript/javascript.en.yml
index 97e3552f27459a73395d2e1a7cb417b5fe3c805c..24f61356b9a08f1e2af0d806d18f1cb6ba40c5d8 100644
--- a/config/locales/javascript/javascript.en.yml
+++ b/config/locales/javascript/javascript.en.yml
@@ -27,9 +27,6 @@ en:
           watch: "Watch this video on {{provider}}"
           unknown: "Unknown video type"
       search_for: "Search for {{name}}"
-      shared:
-        contact_list:
-          cannot_remove: "Cannot remove person from last aspect. (If you want to disconnect from this person you must remove contact.)"
       publisher:
         at_least_one_aspect: "You must publish to at least one aspect"
       infinite_scroll:
diff --git a/public/javascripts/contact-edit.js b/public/javascripts/contact-edit.js
index e2969594b11a07eb6e502c82eb7e6c2ef27775b9..78208e2f97480d9d684228977618557cacd637d7 100644
--- a/public/javascripts/contact-edit.js
+++ b/public/javascripts/contact-edit.js
@@ -12,6 +12,7 @@
   };
   var processClick = function(li, evt){
     evt.preventDefault();
+    if(li.find('.button').hasClass('disabled')){ return; }
 
     var checkbox = li.find('input[type=checkbox]');
     toggleCheckbox(checkbox);
diff --git a/public/javascripts/contact-list.js b/public/javascripts/contact-list.js
index 439f1228bdda57aa439715fc6717cec34e0d6b89..4ffc5ad1cd8dc234a952c8935b3396a5704f7a77 100644
--- a/public/javascripts/contact-list.js
+++ b/public/javascripts/contact-list.js
@@ -40,29 +40,15 @@ var List = {
 $(document).ready(function() {
 
   $('.added').live('ajax:loading', function() {
+    $(this).addClass('disabled');
     $(this).fadeTo(200,0.4);
   });
 
   $('.add').live('ajax:loading', function() {
+    $(this).addClass('disabled');
     $(this).fadeTo(200,0.4);
   });
 
-  $('.added').live('ajax:failure', function(data, html, xhr) {
-    if(confirm(Diaspora.widgets.i18n.t('shared.contact_list.cannot_remove'))){
-      var contact_id;
-
-      if( $('.contact_list').length == 1){
-        contact_id = $(this).parents('li').attr("data-contact_id");
-        $('.contact_list li[data-contact_id='+contact_id+']').fadeOut(200);
-      } else if($('#aspects_list').length == 1) {
-        contact_id = $(this).parents('#aspects_list').attr("data-contact_id");
-      };
-
-      List.disconnectUser(contact_id);
-    };
-    $(this).fadeTo(200,1);
-  });
-
   $('.added').live('mouseover', function() {
     $(this).addClass("remove");
     $(this).children("img").attr("src","/images/icons/monotone_close_exit_delete.png");
diff --git a/public/stylesheets/sass/_mixins.scss b/public/stylesheets/sass/_mixins.scss
index f6bdd09ab51e71ab96c268e73ede155f3b288aa8..0459fb279cafae2abe02570961b1c438294cc408 100644
--- a/public/stylesheets/sass/_mixins.scss
+++ b/public/stylesheets/sass/_mixins.scss
@@ -34,3 +34,8 @@
   -khtml-opacity: $val;
   opacity: $val;
 }
+
+@mixin user-select($val){
+  -webkit-user-select: $val;
+  -moz-user-select: $val;
+}
diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass
index a3067d7098eb558d53a0b3b744231d9c63702017..8b49dabc59ec6ea59a92c2a0e75a6eba0e3787ae 100644
--- a/public/stylesheets/sass/application.sass
+++ b/public/stylesheets/sass/application.sass
@@ -246,12 +246,6 @@ ul.dropdown
     li
       :display block
 
-  &.share.active
-    li:first-child
-      :padding-bottom 6px
-
-    :background
-      :color #ccc
 //////////////////////////////////
 
 .dropdown
@@ -270,6 +264,7 @@ ul.dropdown
     :border 1px solid #AAA
 
     ul
+      @include user-select(none)
       :padding 0
 
       > li