diff --git a/src/p_mobj.c b/src/p_mobj.c
index 1be7ced7a92809d1041bdbe2e92bd9e6045befd1..1818875c54d0fc7717869a51c399486af1d6e18f 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -2386,6 +2386,23 @@ boolean P_ZMovement(mobj_t *mo)
 				// Remove from death pits.  DON'T FUCKING DESPAWN IT DAMMIT
 				mo->fuse = 1;
 				return false;
+			case MT_BOUNCERING:
+			case MT_INFINITYRING:
+			case MT_AUTOMATICRING:
+			case MT_RAILRING:
+			case MT_EXPLOSIONRING:
+			case MT_SCATTERRING:
+			case MT_GRENADERING:
+			case MT_BOUNCEPICKUP:
+			case MT_RAILPICKUP:
+			case MT_AUTOPICKUP:
+			case MT_EXPLODEPICKUP:
+			case MT_SCATTERPICKUP:
+			case MT_GRENADEPICKUP:
+				//Don't remove respawning ringslinger collectables on death pits
+				if (!(mo->flags2 & MF2_DONTRESPAWN))
+					break;
+				/* FALLTHRU */
 			default:
 				if (mo->flags & MF_ENEMY || mo->flags & MF_BOSS || mo->type == MT_MINECART)
 				{