diff --git a/poppler/PSOutputDev.cc b/poppler/PSOutputDev.cc
index 73f2fb1..f52e454 100644
--- a/poppler/PSOutputDev.cc
+++ b/poppler/PSOutputDev.cc
@@ -1521,7 +1521,7 @@
 
 void PSOutputDev::writeHeader(const std::vector<int> &pages,
 			      const PDFRectangle *mediaBox, const PDFRectangle *cropBox,
-			      int pageRotate, char *psTitle) {
+			      int pageRotate, const char *title) {
   PSOutPaperSize *size;
   double x1, y1, x2, y2;
 
@@ -1545,8 +1545,8 @@
         writePSTextLine(obj1.getString());
     }
   }
-  if(psTitle) {
-    char *sanitizedTitle = strdup(psTitle);
+  if(title) {
+    char *sanitizedTitle = strdup(title);
     for (unsigned int i = 0; i < strlen(sanitizedTitle); ++i) {
       if (sanitizedTitle[i] == '\n' || sanitizedTitle[i] == '\r') {
         sanitizedTitle[i] = ' ';
diff --git a/poppler/PSOutputDev.h b/poppler/PSOutputDev.h
index ecdf19f..9e31578 100644
--- a/poppler/PSOutputDev.h
+++ b/poppler/PSOutputDev.h
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2005 Martin Kretzschmar <martink@gnome.org>
 // Copyright (C) 2005 Kristian Høgsberg <krh@redhat.com>
-// Copyright (C) 2006-2008, 2012, 2013, 2015, 2017, 2018 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006-2008, 2012, 2013, 2015, 2017-2019 Albert Astals Cid <aacid@kde.org>
 // Copyright (C) 2007 Brad Hards <bradh@kde.org>
 // Copyright (C) 2009-2013 Thomas Freitag <Thomas.Freitag@alfa.de>
 // Copyright (C) 2009 Till Kamppeter <till.kamppeter@gmail.com>
@@ -168,7 +168,7 @@
   // Write the document-level header.
   void writeHeader(const std::vector<int> &pages,
 		   const PDFRectangle *mediaBox, const PDFRectangle *cropBox,
-		   int pageRotate, char *pstitle);
+		   int pageRotate, const char *title);
 
   // Write the Xpdf procset.
   void writeXpdfProcset();
