diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp
index e6204f650c..b2424e996e 100644
--- a/src/extension/internal/pdfinput/pdf-input.cpp
+++ b/src/extension/internal/pdfinput/pdf-input.cpp
@@ -668,8 +668,12 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, const gchar * uri) {
 
     // poppler does not use glib g_open. So on win32 we must use unicode call. code was copied from
     // glib gstdio.c
+#if POPPLER_CHECK_VERSION(22, 3, 0)
+    pdf_doc = std::make_shared<PDFDoc>(std::make_unique<GooString>(uri));   // TODO: Could ask for password
+#else
     GooString *filename_goo = new GooString(uri);
     pdf_doc = std::make_shared<PDFDoc>(filename_goo, nullptr, nullptr, nullptr);   // TODO: Could ask for password
+#endif
 
     if (!pdf_doc->isOk()) {
         int error = pdf_doc->getErrorCode();
