diff --git a/applications/test/DynamicList2/Test-DynamicList2.C b/applications/test/DynamicList2/Test-DynamicList2.C
index b199e67579479386f50b1e98436ed12d7f20f95c..c97d6248e16b01f63a11fc36f355b5bea111e175 100644
--- a/applications/test/DynamicList2/Test-DynamicList2.C
+++ b/applications/test/DynamicList2/Test-DynamicList2.C
@@ -5,7 +5,7 @@
     \\  /    A nd           | www.openfoam.com
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
-    Copyright (C) 2021 OpenCFD Ltd.
+    Copyright (C) 2021-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -104,7 +104,7 @@ void readList
 {
     OTstream os;
     os << input;
-    ITstream is("input", os.tokens());
+    ITstream is(os.tokens());
 
     is >> output;
 }
@@ -118,7 +118,7 @@ void readList
 {
     OTstream os;
     os << input;
-    ITstream is("input", os.tokens());
+    ITstream is(os.tokens());
 
     is >> output;
 }
diff --git a/applications/test/Polynomial/Test-Polynomial.C b/applications/test/Polynomial/Test-Polynomial.C
index 2ddf858ffe0ca3244f6889f17480ff23d63cc1ae..286e2ef9e514a8071c20d00e9e70b00811a3983a 100644
--- a/applications/test/Polynomial/Test-Polynomial.C
+++ b/applications/test/Polynomial/Test-Polynomial.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011 OpenFOAM Foundation
-    Copyright (C) 2020 OpenCFD Ltd.
+    Copyright (C) 2020-2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -132,7 +132,7 @@ int main(int argc, char *argv[])
         OTstream os;
         os << poly;
 
-        ITstream is("input", std::move(os.tokens()));
+        ITstream is(std::move(os.tokens()));
         is >> polyfunc;
     }
 
diff --git a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C
index fb3a491a3e5db83ce3fdccb094e9d263d7903dbf..eb89216025f8f167eacc18631b160c221d3e7364 100644
--- a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C
+++ b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C
@@ -210,9 +210,9 @@ Foam::ITstream::ITstream
 
 Foam::ITstream::ITstream
 (
-    const string& name,
     const UList<token>& tokens,
-    IOstreamOption streamOpt
+    IOstreamOption streamOpt,
+    const string& name
 )
 :
     Istream(streamOpt.format(), streamOpt.version()),
@@ -227,9 +227,9 @@ Foam::ITstream::ITstream
 
 Foam::ITstream::ITstream
 (
-    const string& name,
     List<token>&& tokens,
-    IOstreamOption streamOpt
+    IOstreamOption streamOpt,
+    const string& name
 )
 :
     Istream(streamOpt.format(), streamOpt.version()),
diff --git a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H
index c463bab8f29f39d23357b9f629c96c23382ff55b..c23c81bb978260982659cd3eb8d9bea3de4f9808 100644
--- a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H
+++ b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H
@@ -101,20 +101,20 @@ public:
             IOstreamOption streamOpt = IOstreamOption()
         );
 
-        //- Copy construct from tokens, with given name
-        ITstream
+        //- Copy construct from tokens, optionally with given name
+        explicit ITstream
         (
-            const string& name,
             const UList<token>& tokens,
-            IOstreamOption streamOpt = IOstreamOption()
+            IOstreamOption streamOpt = IOstreamOption(),
+            const string& name = "input"
         );
 
-        //- Move construct from tokens, with given name
-        ITstream
+        //- Move construct from tokens, optionally with given name
+        explicit ITstream
         (
-            const string& name,
             List<token>&& tokens,
-            IOstreamOption streamOpt = IOstreamOption()
+            IOstreamOption streamOpt = IOstreamOption(),
+            const string& name = "input"
         );
 
         //- Construct token list by parsing the input character sequence
@@ -145,6 +145,31 @@ public:
         );
 
 
+    // Additional constructors
+
+        //- Copy construct from tokens, with given name
+        ITstream
+        (
+            const string& name,
+            const UList<token>& tokens,
+            IOstreamOption streamOpt = IOstreamOption()
+        )
+        :
+            ITstream(tokens, streamOpt, name)
+        {}
+
+        //- Move construct from tokens, with given name
+        ITstream
+        (
+            const string& name,
+            List<token>&& tokens,
+            IOstreamOption streamOpt = IOstreamOption()
+        )
+        :
+            ITstream(std::move(tokens), streamOpt, name)
+        {}
+
+
     //- Destructor
     virtual ~ITstream() = default;
 
diff --git a/src/OpenFOAM/global/debug/simpleObjectRegistry.C b/src/OpenFOAM/global/debug/simpleObjectRegistry.C
index 51efe739b397c865439084185fe78dcb7606387e..70d7d5aff20766cb08e2be5adf72334e334d5a55 100644
--- a/src/OpenFOAM/global/debug/simpleObjectRegistry.C
+++ b/src/OpenFOAM/global/debug/simpleObjectRegistry.C
@@ -64,7 +64,7 @@ void Foam::simpleObjectRegistry::setValues
                 IStringStream is(os.str());
 
                 // Or alternatively?
-                // ITstream is(name, dEntry.dict().tokens());
+                // ITstream is(dEntry.dict().tokens());
 
                 for (simpleRegIOobject* obj : objects)
                 {
@@ -129,11 +129,11 @@ void Foam::simpleObjectRegistry::setNamedValue
 
     if (objPtr)
     {
-        // The generic interface requires an Istream.
-        ITstream is("", tokenList(Foam::one{}, tok));
-
         Log << name.c_str() << '=' << tok << nl;
 
+        // The generic interface requires an Istream.
+        ITstream is(tokenList(Foam::one{}, std::move(tok)));
+
         const List<simpleRegIOobject*>& objects = *objPtr;
 
         for (simpleRegIOobject* obj : objects)