diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs
index 02701a37c16d44e94a4042dd831cb5720bb1f2d3..607bc606cf5e5ece15b27ccd559d8b52bc68b098 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/CylinderFact.cs
@@ -32,15 +32,16 @@ protected void calculate_vectors(){
         T = ((PointFact)FactRecorder.AllFacts[PidT]).Point + Vector3.zero;
         //Rotation = Quaternion.LookRotation(forward, new Vector3(1.0F, 0.0F, 0.0F));
 
-        Position = M + ((T - M));
+        Position = T;
         Radius = Vector3.Distance(M, E);
         Height = Vector3.Distance(T, M);
 
         LocalScale = new Vector3(Radius*2 + 0.1F, Height + 0.1F, Radius*2 + 0.1F);
 
-        Vector3 LookVector = E - M;
+        Vector3 bottomnormal = (T - M).normalized;
+        Vector3 rightvector = (E - M).normalized;
 
-        Rotation = Quaternion.LookRotation(LookVector, Vector3.up);
+        Rotation = Quaternion.LookRotation(rightvector, bottomnormal);
 
         Volume = Mathf.PI * Radius * Radius * Height;