Index: doc/PdfMemDocument.cpp
===================================================================
--- doc/PdfMemDocument.cpp	(revision 1497)
+++ doc/PdfMemDocument.cpp	(working copy)
@@ -162,7 +162,14 @@
     // Call parse file instead of using the constructor
     // so that m_pParser is initialized for encrypted documents
     m_pParser = new PdfParser( PdfDocument::GetObjects() );
-    m_pParser->ParseFile( pszFilename, true );
+    
+    try {
+        m_pParser->ParseFile( pszFilename, true );
+    } catch (const PdfError &e) {
+        delete m_pParser;
+        throw;
+    }
+    
     InitFromParser( m_pParser );
     InitPagesTree();
 
@@ -182,7 +189,14 @@
     // Call parse file instead of using the constructor
     // so that m_pParser is initialized for encrypted documents
     m_pParser = new PdfParser( PdfDocument::GetObjects() );
-    m_pParser->ParseFile( pszFilename, true );
+    
+    try {
+        m_pParser->ParseFile( pszFilename, true );
+    } catch (const PdfError &e) {
+        delete m_pParser;
+        throw;
+    }
+    
     InitFromParser( m_pParser );
     InitPagesTree();
 
@@ -201,7 +215,14 @@
     // Call parse file instead of using the constructor
     // so that m_pParser is initialized for encrypted documents
     m_pParser = new PdfParser( PdfDocument::GetObjects() );
-    m_pParser->ParseFile( pBuffer, lLen, true );
+    
+    try {
+        m_pParser->ParseFile( pBuffer, lLen, true );
+    } catch (const PdfError &e) {
+        delete m_pParser;
+        throw;
+    }
+    
     InitFromParser( m_pParser );
     InitPagesTree();
 
@@ -218,7 +239,14 @@
     // Call parse file instead of using the constructor
     // so that m_pParser is initialized for encrypted documents
     m_pParser = new PdfParser( PdfDocument::GetObjects() );
-    m_pParser->ParseFile( rDevice, true );
+    
+    try {
+        m_pParser->ParseFile( rDevice, true );
+    } catch (const PdfError &e) {
+        delete m_pParser;
+        throw;
+    }
+    
     InitFromParser( m_pParser );
     InitPagesTree();
 
