diff --git a/applications/test/xfer/Test-xferList.C b/applications/test/xfer/Test-xferList.C
index 77231e2118dff2e8d5c1ed7d9f154cd76dc79aa2..9b800220ca72788ff8563d190883e567ba62d2da 100644
--- a/applications/test/xfer/Test-xferList.C
+++ b/applications/test/xfer/Test-xferList.C
@@ -34,6 +34,8 @@ Description
 #include "labelList.H"
 #include "DynamicList.H"
 #include "face.H"
+#include "pointField.H"
+#include "DynamicField.H"
 
 using namespace Foam;
 
@@ -45,7 +47,10 @@ using namespace Foam;
 int main(int argc, char *argv[])
 {
     List<label> lstA(10);
-    List<label> lstC(IStringStream("(1 2 3 4)")());
+    List<label> lstC
+    {
+        1, 2, 3, 4
+    };
 
     forAll(lstA, i)
     {
@@ -128,6 +133,57 @@ int main(int argc, char *argv[])
     Info<< "f1: " << f1 << endl;
     Info<< "f3: " << f3 << endl;
 
+
+    {
+        Info<<"\nTest xfer with fields:" << endl;
+        List<point> list1
+        {
+            { 0, 1, 2 },
+            { 3, 4, 5 },
+            { 6, 7, 8 },
+            { 9, 10, 11 },
+        };
+
+        // Field from Xfer<List>
+        pointField field1(list1.xfer());
+        Info<<nl
+            << "xfer construct from List" << nl
+            <<"input (list) = " << list1 << nl
+            <<"output (field) = " << field1 << nl;
+
+
+        // Field from Xfer<List> ... again
+        pointField field2(field1.xfer());
+        Info<<nl
+            <<"xfer construct from Field (as List): " << nl
+            <<"input (field) = " << field1 << nl
+            <<"output (field) = " << field2 << nl;
+
+
+        // Field from Xfer<Field>
+        pointField field3(xferMove(field2));
+        Info<<nl
+            <<"xfer construct from Field (as Field): " << nl
+            <<"input (field) = " << field2 << nl
+            <<"output (field) = " << field3 << nl;
+
+
+        // Field from Xfer<Field> .. again
+        pointField field4(xferCopy(field3));
+        Info<<nl
+            <<"xfer copy construct from Field (as Field): " << nl
+            <<"input (field) = " << field3 << nl
+            <<"output (field) = " << field4 << nl;
+
+
+        DynamicField<point> dyfield1(xferCopy(field4));
+        Info<<nl
+            <<"xfer copy construct from Field (as Field): " << nl
+            <<"input (field) = " << field4 << nl
+            <<"output (dyn-field) = " << dyfield1 << nl;
+
+    }
+
     return 0;
 }
 
diff --git a/src/OpenFOAM/fields/Fields/DynamicField/DynamicField.H b/src/OpenFOAM/fields/Fields/DynamicField/DynamicField.H
index 092ae85bd329e6bccb12730d1382cf8d2aab9c81..178dff7c256f132cd4ff069abbaaf355c20148e0 100644
--- a/src/OpenFOAM/fields/Fields/DynamicField/DynamicField.H
+++ b/src/OpenFOAM/fields/Fields/DynamicField/DynamicField.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -114,6 +114,9 @@ public:
         //- Construct by transferring the parameter contents
         explicit inline DynamicField(const Xfer<List<T>>&);
 
+        //- Construct by transferring the parameter contents
+        explicit inline DynamicField(const Xfer<Field<T>>&);
+
         //- Construct by 1 to 1 mapping from the given field
         inline DynamicField
         (
diff --git a/src/OpenFOAM/fields/Fields/DynamicField/DynamicFieldI.H b/src/OpenFOAM/fields/Fields/DynamicField/DynamicFieldI.H
index 8db855af5353f7f695d2599a4a76e049dd0a0394..b29af8958e3357ccb7cc44f69c0c37af8bd9af26 100644
--- a/src/OpenFOAM/fields/Fields/DynamicField/DynamicFieldI.H
+++ b/src/OpenFOAM/fields/Fields/DynamicField/DynamicFieldI.H
@@ -3,7 +3,7 @@
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
     \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
+     \\/     M anipulation  | Copyright (C) 2016 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -69,6 +69,17 @@ inline Foam::DynamicField<T, SizeInc, SizeMult, SizeDiv>::DynamicField
 {}
 
 
+template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
+inline Foam::DynamicField<T, SizeInc, SizeMult, SizeDiv>::DynamicField
+(
+    const Xfer<Field<T>>& lst
+)
+:
+    Field<T>(lst),
+    capacity_(Field<T>::size())
+{}
+
+
 template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
 inline Foam::DynamicField<T, SizeInc, SizeMult, SizeDiv>::DynamicField
 (
diff --git a/src/OpenFOAM/fields/Fields/Field/Field.C b/src/OpenFOAM/fields/Fields/Field/Field.C
index 997135bc34d84fa693a4cc712dee1e6a82b62e5d..f60ed5047b5ad7b94800058aa22e4470de4224bd 100644
--- a/src/OpenFOAM/fields/Fields/Field/Field.C
+++ b/src/OpenFOAM/fields/Fields/Field/Field.C
@@ -233,8 +233,10 @@ Foam::Field<Type>::Field(const Xfer<List<Type>>& f)
 template<class Type>
 Foam::Field<Type>::Field(const Xfer<Field<Type>>& f)
 :
-    List<Type>(f)
-{}
+    List<Type>()
+{
+    List<Type>::transfer(f());
+}
 
 
 template<class Type>