diff --git a/etc/codeTemplates/BC/BC.C b/etc/codeTemplates/BC/BC.C
index 173e7a5a456aebd919d108820d1701fb578ca15b..08f76e862f98eb2939e8432adc8fb5dc2b7213d1 100644
--- a/etc/codeTemplates/BC/BC.C
+++ b/etc/codeTemplates/BC/BC.C
@@ -74,7 +74,7 @@ CONSTRUCT
 :
     PARENT(p, iF),
     scalarData_(dict.get<scalar>("scalarData")),
-    data_(pTraits<TYPE>(dict.lookup("data"))),
+    data_(dict.get<TYPE>("data")),
     fieldData_("fieldData", dict, p.size()),
     timeVsData_(Function1<TYPE>::New("timeVsData", dict)),
     wordData_(dict.lookupOrDefault<word>("wordName", "wordDefault")),
diff --git a/src/OpenFOAM/global/constants/dimensionedConstants.H b/src/OpenFOAM/global/constants/dimensionedConstants.H
index 53535b30b869ec112f4e82a5a2fcd736ddec9317..1ea023c16045d5ffd008ea55768f4649e84c4b9e 100644
--- a/src/OpenFOAM/global/constants/dimensionedConstants.H
+++ b/src/OpenFOAM/global/constants/dimensionedConstants.H
@@ -72,9 +72,13 @@ T dimensionedConstant
     if (unitDict.found(group))
     {
         dictionary& groupDict = unitDict.subDict(group);
+
+        // Leaner version of dictionary lookupOrAddDefault()
+        // without writeOptionalEntries
+
         if (groupDict.found(varName))
         {
-            return pTraits<T>(groupDict.lookup(varName));
+            return groupDict.get<T>(varName);
         }
         else
         {
@@ -113,15 +117,14 @@ T dimensionedConstant
                     Name                                                       \
                 )                                                              \
             );                                                                 \
-            Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \
+            Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&>  \
             (                                                                  \
                 Switch                                                         \
             );                                                                 \
             s.dimensions().reset(ds.dimensions());                             \
             s = ds;                                                            \
         }                                                                      \
-        virtual ~add##Tag##ToDimensionedConstant()                             \
-        {}                                                                     \
+        virtual ~add##Tag##ToDimensionedConstant() = default;                  \
         virtual void readData(Foam::Istream& is)                               \
         {                                                                      \
             const_cast<Foam::dimensionedScalar&>(Switch) =                     \
@@ -162,15 +165,14 @@ T dimensionedConstant
                     Foam::dimensionedScalar(Name,DefaultExpr)                  \
                 )                                                              \
             );                                                                 \
-            Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \
+            Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&>  \
             (                                                                  \
                 Switch                                                         \
             );                                                                 \
             s.dimensions().reset(ds.dimensions());                             \
             s = ds;                                                            \
         }                                                                      \
-        virtual ~add##Tag##ToDimensionedConstantWithDefault()                  \
-        {}                                                                     \
+        virtual ~add##Tag##ToDimensionedConstantWithDefault() = default;       \
         virtual void readData(Foam::Istream& is)                               \
         {                                                                      \
             const_cast<Foam::dimensionedScalar&>(Switch) =                     \
diff --git a/src/OpenFOAM/primitives/bools/bool/bool.C b/src/OpenFOAM/primitives/bools/bool/bool.C
index 7dc08dcbaa50a4708498ff3e4c9efcdd31937e99..5f82fff76829a8b4f8c4fce448c4e9666e1c7a2c 100644
--- a/src/OpenFOAM/primitives/bools/bool/bool.C
+++ b/src/OpenFOAM/primitives/bools/bool/bool.C
@@ -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) 2018 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -50,11 +50,7 @@ Foam::pTraits<bool>::pTraits(Istream& is)
 
 Foam::Istream& Foam::operator>>(Istream& is, bool& b)
 {
-    if (is.good())
-    {
-        b = Switch(is);
-    }
-
+    b = static_cast<bool>(Switch(is));
     return is;
 }
 
@@ -70,10 +66,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const bool b)
 
 bool Foam::readBool(Istream& is)
 {
-    bool b;
-    is  >> b;
-
-    return b;
+    return static_cast<bool>(Switch(is));
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C
index 57032e53c0ffa83f55d333615171c4a406d5cb71..1baa11ed0831815b7625f704529f3dfef5044aa4 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C
@@ -53,7 +53,7 @@ Foam::turbulentInletFvPatchField<Type>::turbulentInletFvPatchField
 :
     fixedValueFvPatchField<Type>(p, iF, dict, false),
     ranGen_(label(0)),
-    fluctuationScale_(pTraits<Type>(dict.lookup("fluctuationScale"))),
+    fluctuationScale_(dict.get<Type>("fluctuationScale")),
     referenceField_("referenceField", dict, p.size()),
     alpha_(dict.lookupOrDefault<scalar>("alpha", 0.1)),
     curTimeIndex_(-1)