diff --git a/util/mkpod2html.pl b/util/mkpod2html.pl
index 2df4b22b41..ea1164d597 100755
--- a/util/mkpod2html.pl
+++ b/util/mkpod2html.pl
@@ -12,6 +12,7 @@ use warnings;
use lib ".";
use Getopt::Std;
use Pod::Html;
+use File::Spec::Functions qw(:DEFAULT rel2abs);
# Options.
our($opt_i); # -i INFILE
@@ -25,6 +26,14 @@ die "-o flag missing" unless $opt_o;
die "-t flag missing" unless $opt_t;
die "-r flag missing" unless $opt_r;
+# We originally used realpath() here, but the Windows implementation appears
+# to require that the directory or file exist to be able to process the input,
+# so we use rel2abs() instead, which only processes the string without
+# looking further.
+$opt_i = rel2abs($opt_i) or die "Can't convert to real path: $!";
+$opt_o = rel2abs($opt_o) or die "Can't convert to real path: $!";
+$opt_r = rel2abs($opt_r) or die "Can't convert to real path: $!";
+
pod2html
"--infile=$opt_i",
"--outfile=$opt_o",