Index: src/base/PdfFilter.cpp
===================================================================
--- src/base/PdfFilter.cpp	(revision 1999)
+++ src/base/PdfFilter.cpp	(working copy)
@@ -405,10 +405,12 @@
     else if( pObject->IsName() ) 
         pObj = pObject;
 
+    if ( pObj && pObj->IsReference() )
+        pObj = pObject->GetOwner()->GetObject( pObj->GetReference() );
 
     if (!pObj)
-	// Object had no /Filter key . Return a null filter list.
-	return filters;
+        // Object had no /Filter key . Return a null filter list.
+        return filters;
 
     if( pObj->IsName() ) 
         filters.push_back( PdfFilterFactory::FilterNameToType( pObj->GetName() ) );
@@ -419,7 +421,7 @@
         while( it != pObj->GetArray().end() )
         {
             if ( (*it).IsName() )
-			{
+            {
                 filters.push_back( PdfFilterFactory::FilterNameToType( (*it).GetName() ) );
             }
             else if ( (*it).IsReference() )
@@ -435,8 +437,8 @@
             else 
             {
                 PODOFO_RAISE_ERROR_INFO( ePdfError_InvalidDataType, "Filter array contained unexpected non-name type" );
-			}
-                
+            }
+
             ++it;
         }
     }
