diff --git a/test/Makefile.am b/test/Makefile.am
index d11177b97a7d31685d75940215baee9e1ea1b489..8fdc5dc7aa8fd6e30a9e08fb00d1166256096c10 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -5,7 +5,7 @@ LDADD = $(UG_LDFLAGS) $(AMIRAMESH_LDFLAGS) $(UG_LIBS) $(AMIRAMESH_LIBS)
 AM_CPPFLAGS += $(UG_CPPFLAGS) $(AMIRAMESH_CPPFLAGS) -Wall
 
 check_PROGRAMS = frameinvariancetest rotationtest fdcheck localgeodesicfefunctiontest \
-                 harmonicenergytest averagedistanceassemblertest
+                 harmonicenergytest averagedistanceassemblertest unitcircletest
 
 frameinvariancetest_SOURCES = frameinvariancetest.cc
 
@@ -19,6 +19,8 @@ harmonicenergytest_SOURCES = harmonicenergytest.cc
 
 averagedistanceassemblertest_SOURCES = averagedistanceassemblertest.cc
 
+unitcircletest_SOURCES = unitcircletest.cc
+
 # don't follow the full GNU-standard
 # we need automake 1.5
 AUTOMAKE_OPTIONS = foreign 1.5
diff --git a/test/unitcircletest.cc b/test/unitcircletest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..425f47797cbed3406f1f6084a0b3e3d748d43607
--- /dev/null
+++ b/test/unitcircletest.cc
@@ -0,0 +1,31 @@
+#include <config.h>
+
+#include <dune/src/unitvector.hh>
+#include <dune/src/rotation.hh>
+
+
+using namespace Dune;
+
+int main()
+{
+    // Set up elements of S^1
+    FieldVector<double,2> v;
+    v[0] = 1;  v[1] = 1;
+    UnitVector<2> uv1;  uv1 = v;
+    v[0] = 0;  v[1] = 1;
+    UnitVector<2> uv0;  uv0 = v;
+
+    // Set up elements of SO(2)
+    Rotation<2,double> ro1(M_PI/4);
+    Rotation<2,double> ro0(M_PI/2);
+
+    std::cout << UnitVector<2>::distance(uv0, uv1) << std::endl;
+    std::cout << Rotation<2,double>::distance(ro0, ro1) << std::endl;
+
+    std::cout << UnitVector<2>::derivativeOfDistanceSquaredWRTSecondArgument(uv0, uv1) << std::endl;
+    std::cout << Rotation<2,double>::derivativeOfDistanceSquaredWRTSecondArgument(ro0, ro1) << std::endl;
+
+    std::cout << UnitVector<2>::secondDerivativeOfDistanceSquaredWRTSecondArgument(uv0, uv1) << std::endl;
+    std::cout << Rotation<2,double>::secondDerivativeOfDistanceSquaredWRTSecondArgument(ro0, ro1) << std::endl;
+}
+