diff --git a/kernel/register.cc b/kernel/register.cc
index 511afaac0..cb8ad473c 100644
--- a/kernel/register.cc
+++ b/kernel/register.cc
@@ -306,7 +306,8 @@ void Frontend::frontend_call(RTLIL::Design *design, FILE *f, std::string filenam
 	if (f != NULL) {
 		frontend_register[args[0]]->execute(f, filename, args, design);
 	} else if (filename == "-") {
-		frontend_register[args[0]]->execute(stdin, "<stdin>", args, design);
+		FILE *f_stdin = stdin; // workaround for OpenBSD 'stdin' implementation
+		frontend_register[args[0]]->execute(f_stdin, "<stdin>", args, design);
 	} else {
 		if (!filename.empty())
 			args.push_back(filename);