diff --git a/applications/test/tensor2D/Make/files b/applications/test/tensor2D/Make/files
new file mode 100644
index 0000000000000000000000000000000000000000..29b058c0ff2b8dc6de6393bb2e19ea86ab335abd
--- /dev/null
+++ b/applications/test/tensor2D/Make/files
@@ -0,0 +1,3 @@
+Test-tensor2D.C
+
+EXE = $(FOAM_USER_APPBIN)/Test-tensor2D
diff --git a/applications/test/tensor2D/Make/options b/applications/test/tensor2D/Make/options
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/applications/test/tensor2D/Test-tensor2D.C b/applications/test/tensor2D/Test-tensor2D.C
new file mode 100644
index 0000000000000000000000000000000000000000..367c9244706cf1e1f20c3354568ce105d70f70d9
--- /dev/null
+++ b/applications/test/tensor2D/Test-tensor2D.C
@@ -0,0 +1,14 @@
+#include "tensor2D.H"
+#include "IOstreams.H"
+
+using namespace Foam;
+
+int main()
+{
+    vector2D v1(1, 2), v2(3, 4);
+    tensor2D t = v1*v2;
+
+    Info<< "v1(1, 2)*v2(3, 4) = " << t << endl;
+
+    return 0;
+}
diff --git a/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H b/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H
index 1760cc1f5fc0f811edd94d641ef1d15385dd11ee..7fe348c9d348b398005fa8f599ec6849db111642 100644
--- a/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H
+++ b/src/OpenFOAM/primitives/Tensor2D/Tensor2DI.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -513,6 +513,14 @@ public:
 };
 
 
+template<class Cmpt>
+class outerProduct<Vector2D<Cmpt>, Vector2D<Cmpt> >
+{
+public:
+
+    typedef Tensor2D<Cmpt> type;
+};
+
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //