diff --git a/src/main.jl b/src/main.jl
index e8bc29dc024c4b1fd7c807bf142ac68de1e780fa..844d2eb2c7e2ee26f82440adbc97be52b574d495 100644
--- a/src/main.jl
+++ b/src/main.jl
@@ -19,16 +19,22 @@ function testparfiles()
 end
 
 
-function normalize_parfile(filename)
+function normalize_parfile(path::AbstractString)
+  filename = if isdir(path)
+    name = basename(path)
+    fname = joinpath(path, string(name, ".toml"))
+  else
+    path
+  end
   if !isfile(filename)
-    error("Cannot locate parameter file '$filename'")
+    error("Cannot locate a parameter file at $path")
   end
   return filename
 end
 function normalize_parfile(nr::Integer)
   testpars = get_testparfiles()
   if !(1 <= nr <= length(testpars))
-    error("there is no test parfile with nr $nr")
+    error("There is no test parfile with nr $nr, see testparfiles() for available parfiles")
   end
   parfile = testpars[nr]
   path = normpath(joinpath(@__DIR__, "..", "test", "IntegrationTests", "refs", parfile, "$parfile.toml"))
@@ -41,7 +47,7 @@ end
 
 Run program specified by a `parfile` in TOML format.
 """
-function main(parfile, parameter_overrides::Pair{String,String}...)
+function the_main(parfile::String, parameter_overrides::Pair{String,String}...)
 
   parfile = abspath(parfile)
   prms = TOML.parsefile(parfile)
@@ -107,8 +113,9 @@ function main(parfile, parameter_overrides::Pair{String,String}...)
 
   return
 end
-main(id::Integer, parameter_overrides::Pair{String,String}...) =
-  main(normalize_parfile(id); parameter_overrides)
+
+main(p::Union{Integer,AbstractString}, parameter_overrides::Pair{String,String}...) =
+  the_main(normalize_parfile(p), parameter_overrides...)
 
 load_parameters(parfile::AbstractString) = parse_parameters(TOML.parsefile(parfile))
 
diff --git a/src/utils.jl b/src/utils.jl
index b1acec2f5d999c26309e9177b160f7b6b91fec73..0e9a846ce147eb35ac517ef12cbe61f11957e199 100644
--- a/src/utils.jl
+++ b/src/utils.jl
@@ -199,8 +199,6 @@ function make_outputdir(path)
 
   lastext == "toml" || error("Only accept parameter files in .toml format, received '$path'")
 
-  isfile(path) || error("Parameter file '$path' not found")
-
   outputdirname = basename
   if length(firstexts) > 0
     outputdirname = "$basename.$(join(firstexts, '.'))"
diff --git a/test/UnitTests/src/test_utils.jl b/test/UnitTests/src/test_utils.jl
index 15a18fe40eb0e84022828d1c73134cd9ec480a00..f60b9490e20c04a204c905f90bc87a27de29d8eb 100644
--- a/test/UnitTests/src/test_utils.jl
+++ b/test/UnitTests/src/test_utils.jl
@@ -347,7 +347,8 @@ end
     end
 
     nofilethere = joinpath(dir, "nofilethere.toml")
-    @test_throws ErrorException dg1d.make_outputdir(nofilethere)
+    dg1d.make_outputdir(nofilethere)
+    @test isdir(first(splitext(nofilethere)))
 
     wrongextensionfile = joinpath(dir, "wrongextension.toml.blabla")
     touch(wrongextensionfile)