diff --git a/gracedb/ligoauth/middleware.py b/gracedb/ligoauth/middleware.py
index 3b43f5474d152b25018650ce32dccfeac872d9d3..c3214afb8b5c92cdcf030f0e3d4b885f13c7afa6 100644
--- a/gracedb/ligoauth/middleware.py
+++ b/gracedb/ligoauth/middleware.py
@@ -126,8 +126,11 @@ class ControlRoomMiddleware(object):
         # Add user to control room group(s)
         for ifo, ip in settings.CONTROL_ROOM_IPS.iteritems():
             if (ip == user_ip):
-                request.user.groups.add(Group.objects.get(name=
-                    ifo.lower() + self.control_room_group_suffix))
+                control_room_group = Group.objects.get(name=
+                    (ifo.lower() + self.control_room_group_suffix))
+                request.user.groups.through.objects.get_or_create(
+                    user=request.user, group=control_room_group)
+                break
 
         return request