diff --git a/src/p_user.c b/src/p_user.c
index 166027c8d1f4aefc5fb80c5cc63718dbc320eece..66cce3082b18e7e15e3757a360070af13566a9ac 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -1341,8 +1341,8 @@ void P_DoSuperTransformation(player_t *player, boolean giverings)
 	// Transformation animation
 	P_SetPlayerMobjState(player->mo, S_PLAY_SUPER_TRANS1);
 
-	if (giverings)
-		P_GivePlayerRings(player, 50)
+	if (giverings) && player->rings > 50
+		player->rings = 50
 
 	// Just in case.
 	if (!(mapheaderinfo[gamemap-1]->levelflags & LF_NOSSMUSIC))