diff --git a/qt5/src/ArthurOutputDev.cc b/qt5/src/ArthurOutputDev.cc
index f199e65..3be1267 100644
--- a/qt5/src/ArthurOutputDev.cc
+++ b/qt5/src/ArthurOutputDev.cc
@@ -137,12 +137,26 @@
 
 void ArthurOutputDev::saveState(GfxState *state)
 {
+  m_currentPenStack.push(m_currentPen);
+  m_currentBrushStack.push(m_currentBrush);
+  m_rawFontStack.push(m_rawFont);
+  m_codeToGIDStack.push(m_codeToGID);
+
   m_painter->save();
 }
 
 void ArthurOutputDev::restoreState(GfxState *state)
 {
   m_painter->restore();
+
+  m_codeToGID = m_codeToGIDStack.top();
+  m_codeToGIDStack.pop();
+  m_rawFont = m_rawFontStack.top();
+  m_rawFontStack.pop();
+  m_currentBrush = m_currentBrushStack.top();
+  m_currentBrushStack.pop();
+  m_currentPen = m_currentPenStack.top();
+  m_currentPenStack.pop();
 }
 
 void ArthurOutputDev::updateAll(GfxState *state)
diff --git a/qt5/src/ArthurOutputDev.h b/qt5/src/ArthurOutputDev.h
index 496f5a7..480c782 100644
--- a/qt5/src/ArthurOutputDev.h
+++ b/qt5/src/ArthurOutputDev.h
@@ -36,6 +36,7 @@
 
 #include <memory>
 #include <map>
+#include <stack>
 
 #include "goo/gtypes.h"
 #include "OutputDev.h"
@@ -172,14 +173,21 @@
 private:
   QPainter *m_painter;
   FontHinting m_fontHinting;
+
   QPen m_currentPen;
+  // The various stacks are used to implement the 'saveState' and 'restoreState' methods
+  std::stack<QPen> m_currentPenStack;
+
   QBrush m_currentBrush;
+  std::stack<QBrush> m_currentBrushStack;
+
   GBool m_needFontUpdate;		// set when the font needs to be updated
   SplashFontEngine *m_fontEngine;
   XRef *xref;			// xref table for current document
 
   // The current font in use
   QRawFont* m_rawFont;
+  std::stack<QRawFont*> m_rawFontStack;
 
   // Identify a font by its 'Ref' and its font size
   struct ArthurFontID
@@ -199,6 +207,7 @@
 
   // The table that maps character codes to glyph indexes
   int* m_codeToGID;
+  std::stack<int*> m_codeToGIDStack;
 };
 
 #endif
