diff --git a/ShibAuthPlugin.php b/ShibAuthPlugin.php
index 0e9c177a9b55b3014aa104ec5ce865ac0499335f..1a0084b3d0a5c58bb3aef34b3b1d2816de9f3708 100644
--- a/ShibAuthPlugin.php
+++ b/ShibAuthPlugin.php
@@ -470,6 +470,11 @@ function ShibAddGroups($user) {
 	global $shib_groups;
 	global $shib_group_prefix;
 
+	$oldGroups = $user->getGroups();
+        foreach ($oldGroups as $group) {
+                $user->removeGroup($group);
+        }
+
 	if (isset($shib_groups)) {
 		foreach (explode(';', $shib_groups) as $group) {
 			if (isset($shib_group_prefix) && !empty($shib_group_prefix)) {