Index: src/doc/PdfAction.h
===================================================================
--- src/doc/PdfAction.h	(revision 1482)
+++ src/doc/PdfAction.h	(working copy)
@@ -59,6 +59,7 @@
     ePdfAction_Rendition,
     ePdfAction_Trans,
     ePdfAction_GoTo3DView,
+    ePdfAction_RichMediaExecute,
     
     ePdfAction_Unknown = 0xff
 };
Index: src/doc/PdfFileSpec.cpp
===================================================================
--- src/doc/PdfFileSpec.cpp	(revision 1482)
+++ src/doc/PdfFileSpec.cpp	(working copy)
@@ -88,6 +88,24 @@
     this->GetObject()->GetDictionary().AddKey( "EF", ef );
 }
 
+
+PdfFileSpec::PdfFileSpec( const char* pszFilename, const unsigned char* data, ptrdiff_t size, PdfDocument* pParent)
+    : PdfElement( "Filespec", pParent )
+{
+    PdfObject* pEmbeddedStream;
+
+    this->GetObject()->GetDictionary().AddKey( "F", this->CreateFileSpecification( pszFilename ) );
+
+    PdfDictionary ef;
+
+    pEmbeddedStream = this->CreateObject( "EmbeddedFile" );
+    this->EmbeddFileFromMem( pEmbeddedStream, data, size );
+
+    ef.AddKey( "F",  pEmbeddedStream->Reference() );
+
+    this->GetObject()->GetDictionary().AddKey( "EF", ef );
+}
+
 PdfFileSpec::PdfFileSpec( PdfObject* pObject )
     : PdfElement( "Filespec", pObject )
 {
Index: src/doc/PdfFileSpec.h
===================================================================
--- src/doc/PdfFileSpec.h	(revision 1482)
+++ src/doc/PdfFileSpec.h	(working copy)
@@ -46,6 +46,7 @@
     /** Embeds the file in memory from "data" buffer under "pszFileName" fie name.
       */
     PdfFileSpec( const char* pszFilename, const unsigned char* data, ptrdiff_t size, PdfVecObjects* pParent);
+    PdfFileSpec( const char* pszFilename, const unsigned char* data, ptrdiff_t size, PdfDocument* pParent);
 
     PdfFileSpec( PdfObject* pObject );
 
