diff --git a/skais/ais/ais_trajectory.py b/skais/ais/ais_trajectory.py
index a2cebe8fdbaf5a379f247ff7c8dc939a1432fee6..6d44a36d14c9c9cf2ec89900fb57f083a0435963 100644
--- a/skais/ais/ais_trajectory.py
+++ b/skais/ais/ais_trajectory.py
@@ -141,16 +141,18 @@ def compute_position_dist_std(dat, radius):
 def angle_between_three_points(p1, p2, p3):
     alpha = bearing(p2, p1)
     beta = bearing(p2, p3)
-
-    return alpha - beta
-
+    result = alpha - beta
+    if result > 180:
+        return 180 - result
+    else:
+        return result
 
 def compute_point_angles(dat):
     angles = np.zeros(dat.shape[0])
 
     p1 = (dat[0][0], dat[0][1])
     p2 = (dat[1][0], dat[1][1])
-    angles[0] = bearing(p2, p1)
+    angles[0] = bearing(p1, p2)
     for i in range(1, dat.shape[0] - 1):
         p1 = (dat[i - 1][0], dat[i - 1][1])
         p2 = (dat[i][0], dat[i][1])
diff --git a/skais/tests/ais/test_ais_trajectory.py b/skais/tests/ais/test_ais_trajectory.py
index 1feb4d0bbabefc62aa1219f144bd76ba5ed9177d..e8100e31a9b1c6051d15c7e5260eb8bfdfbd6ca3 100644
--- a/skais/tests/ais/test_ais_trajectory.py
+++ b/skais/tests/ais/test_ais_trajectory.py
@@ -356,32 +356,32 @@ class TestAISTrajectory(unittest.TestCase):
         self.assertAlmostEqual(result, expected)
 
     def test_angle_between_three_points_1(self):
-        p1 = (0, 0)
-        p2 = (0, 10)
-        p3 = (10, 10)
+        p1 = (0, -10)
+        p2 = (0, 0)
+        p3 = (10, 0)
 
-        self.assertEqual(90, angle_between_three_points.py_func(p1, p2, p3))
+        self.assertAlmostEqual(90, angle_between_three_points.py_func(p1, p2, p3), places=3)
 
     def test_angle_between_three_points_2(self):
-        p1 = (0, 0)
-        p2 = (0, 10)
-        p3 = (-10, -10)
+        p1 = (0, -10)
+        p2 = (0, 0)
+        p3 = (-10, 0)
 
-        self.assertEqual(-90, angle_between_three_points.py_func(p1, p2, p3))
+        self.assertAlmostEqual(-90, angle_between_three_points.py_func(p1, p2, p3), places=3)
 
     def test_angle_between_three_points_3(self):
-        p1 = (0, 0)
-        p2 = (0, 10)
-        p3 = (10, 20)
+        p1 = (0, -10)
+        p2 = (0, 0)
+        p3 = (10, 10)
 
-        self.assertEqual(42.814167, angle_between_three_points.py_func(p1, p2, p3))
+        self.assertAlmostEqual(180 - 44.56139, angle_between_three_points.py_func(p1, p2, p3), places=3)
 
     def test_angle_between_three_points_4(self):
         p1 = (0, 0)
-        p2 = (00, 10)
+        p2 = (0, 10)
         p3 = (0, 0)
 
-        self.assertEqual(180, abs(angle_between_three_points.py_func(p1, p2, p3)))
+        self.assertAlmostEqual(0, abs(angle_between_three_points.py_func(p1, p2, p3)), places=3)
 
 
     # def test_compute_position_angle_std(self):