diff --git a/accounts/views.py b/accounts/views.py
index 35c0e280b9657ec9f13f5f8a82bc2f3b33da384b..ada4eb7c0c8f92ebb86e78706eb7851abf37531d 100644
--- a/accounts/views.py
+++ b/accounts/views.py
@@ -85,10 +85,19 @@ def activate(request, activation_key):
 
     if request.method == "POST":
         request_data = request.POST.copy()
-        try:
+	try:
             user = User.objects.get(pk=request_data['user'])
             up = user.get_profile()
-            for peer in request_data['peers']:
+
+            # use getlist to get the list of peers (might be multiple)
+            profile_peers = request.POST.getlist('peers')
+
+            # remove already assigned peers, as these are selected by
+            # the user, no admin has yet verified those. They will be
+            # replaced by the admin's selection.
+            up.peers.clear()
+
+            for peer in profile_peers:
                 up.peers.add(Peer.objects.get(pk=peer))
             up.save()