diff --git a/geopy/distance.py b/geopy/distance.py
index <HASH>..<HASH> 100644
--- a/geopy/distance.py
+++ b/geopy/distance.py
@@ -384,7 +384,9 @@ class vincenty(Distance):
         iter_limit = self.iterations
 
         i = 0
-        while abs(lambda_lng - lambda_prime) > 10e-12 and i <= iter_limit:
+
+        while (i == 0 or
+               (abs(lambda_lng - lambda_prime) > 10e-12 and i <= iter_limit)):
             i += 1
 
             sin_lambda_lng, cos_lambda_lng = sin(lambda_lng), cos(lambda_lng)
diff --git a/test/test_distance.py b/test/test_distance.py
index <HASH>..<HASH> 100644
--- a/test/test_distance.py
+++ b/test/test_distance.py
@@ -60,6 +60,12 @@ class CommonDistanceComputationCases(object):
         distance = self.cls((0, 180), (0, -180)).kilometers
         assert_almost_equal(distance, 0)
 
+    def test_should_compute_distance_across_antimeridian(self):
+        nines = 1 - 1e-30  # 0.(9)
+        distance = self.cls((0, -179 - nines),
+                            (0, 179 + nines)).kilometers
+        assert_almost_equal(distance, 0)
+
 
 class CommonMathematicalOperatorCases(object):
Fix vincenty failing for 0 distance across antimeridian