diff --git a/test/localgeodesicfefunctiontest.cc b/test/localgeodesicfefunctiontest.cc
index 1d398eae6f9dbf6bea677b08330d4c195762427f..1d1186f3b50a50b97226951752acb1ef963aad1d 100644
--- a/test/localgeodesicfefunctiontest.cc
+++ b/test/localgeodesicfefunctiontest.cc
@@ -20,6 +20,18 @@ const double eps = 1e-6;
 
 using namespace Dune;
 
+/** \brief Computes the diameter of a set */
+template <class TargetSpace>
+double diameter(const std::vector<TargetSpace>& v)
+{
+    double d = 0;
+    for (size_t i=0; i<v.size(); i++)
+        for (size_t j=0; j<v.size(); j++)
+            d = std::max(d, TargetSpace::distance(v[i],v[j]));
+    return d;
+}
+
+
 template <int domainDim>
 void testDerivativeTangentiality(const RealTuple<1>& x,
                                  const FieldMatrix<double,1,domainDim>& derivative)
@@ -354,6 +366,9 @@ void test()
         
         for (int j=0; j<domainDim+1; j++)
             corners[j] = testPoints[index[j]];
+        
+        if (diameter(corners) > 0.5*M_PI)
+            continue;
 
         //testPermutationInvariance(corners);
         testDerivative<domainDim>(corners);