diff --git a/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp b/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp
index c8cf9ce35e45d0bc107cd73da08333ef5ba5b2d9..7c81cb805f86e3d9a4de4bfa2c594ab02a683719 100644
--- a/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp
+++ b/Source/RWTHVRToolkit/Private/Interaction/Interactors/DirectInteractionComponent.cpp
@@ -120,6 +120,7 @@ void UDirectInteractionComponent::OnBeginInteraction(const FInputActionValue& Va
 	}
 	else
 	{
+		CurrentlyInteractedComponents.Empty();
 		CurrentlyInteractedComponents.Reserve(CurrentlyInteractedComponents.Num() +
 											  CurrentInteractableComponentsInRange.Num());
 		for (UInteractableComponent* InteractableComp : CurrentInteractableComponentsInRange)
@@ -139,6 +140,7 @@ void UDirectInteractionComponent::OnEndInteraction(const FInputActionValue& Valu
 			Component->HandleOnActionEndEvents(this, InteractionInputAction, Value, EInteractorType::Direct);
 		}
 	}
+	CurrentlyInteractedComponents.Empty();
 }
 
 UInteractableComponent* UDirectInteractionComponent::SearchForInteractable(AActor* HitActor)