diff --git a/src/mesh/blockMesh/Make/files b/src/mesh/blockMesh/Make/files
index cda173e1f6..28410a1141 100644
--- a/src/mesh/blockMesh/Make/files
+++ b/src/mesh/blockMesh/Make/files
@@ -7,6 +7,7 @@ curvedEdges/curvedEdge.C
curvedEdges/lineEdge.C
curvedEdges/polyLineEdge.C
curvedEdges/lineDivide.C
+curvedEdges/BSplineEdge.C
curvedEdges/splineEdge.C
blockDescriptor/blockDescriptor.C
diff --git a/src/mesh/blockMesh/curvedEdges/BSplineEdge.C b/src/mesh/blockMesh/curvedEdges/BSplineEdge.C
new file mode 100644
index 0000000000..dca88f3194
--- /dev/null
+++ b/src/mesh/blockMesh/curvedEdges/BSplineEdge.C
@@ -0,0 +1,97 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "BSplineEdge.H"
+#include "addToRunTimeSelectionTable.H"
+
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ defineTypeNameAndDebug(BSplineEdge, 0);
+
+ addToRunTimeSelectionTable
+ (
+ curvedEdge,
+ BSplineEdge,
+ Istream
+ );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::BSplineEdge::BSplineEdge
+(
+ const pointField& points,
+ const label start,
+ const label end,
+ const pointField& internalPoints
+)
+:
+ curvedEdge(points, start, end),
+ BSpline(appendEndPoints(points, start, end, internalPoints))
+{}
+
+
+Foam::BSplineEdge::BSplineEdge(const pointField& points, Istream& is)
+:
+ curvedEdge(points, is),
+ BSpline(appendEndPoints(points, start_, end_, pointField(is)))
+{
+ token t(is);
+ is.putBack(t);
+
+ // discard unused start/end tangents
+ if (t == token::BEGIN_LIST)
+ {
+ vector tangent0Ignored(is);
+ vector tangent1Ignored(is);
+ }
+}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::BSplineEdge::~BSplineEdge()
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+Foam::point Foam::BSplineEdge::position(const scalar mu) const
+{
+ return BSpline::position(mu);
+}
+
+
+Foam::scalar Foam::BSplineEdge::length() const
+{
+ return BSpline::length();
+}
+
+
+// ************************************************************************* //
diff --git a/src/mesh/blockMesh/curvedEdges/BSplineEdge.H b/src/mesh/blockMesh/curvedEdges/BSplineEdge.H
new file mode 100644
index 0000000000..bb1fc553cc
--- /dev/null
+++ b/src/mesh/blockMesh/curvedEdges/BSplineEdge.H
@@ -0,0 +1,108 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::BSplineEdge
+
+Description
+ A curvedEdge interface for B-splines.
+
+SourceFiles
+ BSplineEdge.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef BSplineEdge_H
+#define BSplineEdge_H
+
+#include "curvedEdge.H"
+#include "BSpline.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class BSplineEdge Declaration
+\*---------------------------------------------------------------------------*/
+
+class BSplineEdge
+:
+ public curvedEdge,
+ public BSpline
+{
+ // Private Member Functions
+
+ //- Disallow default bitwise copy construct
+ BSplineEdge(const BSplineEdge&);
+
+ //- Disallow default bitwise assignment
+ void operator=(const BSplineEdge&);
+
+
+public:
+
+ //- Runtime type information
+ TypeName("BSpline");
+
+
+ // Constructors
+
+ //- Construct from components
+ BSplineEdge
+ (
+ const pointField&,
+ const label start,
+ const label end,
+ const pointField& internalPoints
+ );
+
+ //- Construct from Istream, setting pointsList
+ BSplineEdge(const pointField&, Istream&);
+
+
+ //- Destructor
+ virtual ~BSplineEdge();
+
+
+ // Member Functions
+
+ //- Return the point position corresponding to the curve parameter
+ // 0 <= lambda <= 1
+ virtual point position(const scalar) const;
+
+ //- Return the length of the spline curve (not implemented)
+ virtual scalar length() const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //