diff --git a/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp b/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp
index eaccfb7c69919655384400bbcfb5f04509d35ca3..06e03060955c7230298531463b4cf02deff8e098 100644
--- a/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp
+++ b/Source/RWTHVRToolkit/Private/Pawn/VirtualRealityPawn.cpp
@@ -99,6 +99,18 @@ void AVirtualRealityPawn::SetCameraOffset() const
 	CameraComponent->SetWorldLocationAndRotation(Location, Rotation);
 }
 
+void AVirtualRealityPawn::UpdateRightHandForDesktopInteraction()
+{
+	APlayerController* PC = Cast<APlayerController>(GetController());
+	if (PC)
+	{
+		FVector MouseLocation, MouseDirection;
+		PC->DeprojectMousePositionToWorld(MouseLocation, MouseDirection);
+		FRotator HandOrientation = MouseDirection.ToOrientationRotator();
+		RightHand->SetWorldRotation(HandOrientation);
+	}
+}
+
 void AVirtualRealityPawn::OnForward_Implementation(float Value)
 {
 	if (RightHand)
@@ -130,6 +142,10 @@ void AVirtualRealityPawn::OnTurnRate_Implementation(float Rate)
 	{
 		AddControllerYawInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds() * CustomTimeDilation);
 	}
+	if (UVirtualRealityUtilities::IsDesktopMode())
+	{
+		UpdateRightHandForDesktopInteraction();
+	}
 }
 
 void AVirtualRealityPawn::OnLookUpRate_Implementation(float Rate)
diff --git a/Source/RWTHVRToolkit/Public/Pawn/VirtualRealityPawn.h b/Source/RWTHVRToolkit/Public/Pawn/VirtualRealityPawn.h
index 4153d539a8635b23482d414d6b95df064661a92b..0d46c37621e5b519e2e463b8287579530cbccb73 100644
--- a/Source/RWTHVRToolkit/Public/Pawn/VirtualRealityPawn.h
+++ b/Source/RWTHVRToolkit/Public/Pawn/VirtualRealityPawn.h
@@ -55,4 +55,5 @@ protected:
 	bool bApplyDesktopRotation = false;
 
 	void SetCameraOffset() const;
+	void UpdateRightHandForDesktopInteraction();
 };