Index: src/base/PdfInputStream.cpp
===================================================================
--- src/base/PdfInputStream.cpp	(revision 1697)
+++ src/base/PdfInputStream.cpp	(working copy)
@@ -35,6 +35,7 @@
 
 #include "PdfInputDevice.h"
 #include "PdfDefinesPrivate.h"
+#include "base\PdfDate.h"
 
 #include <stdio.h>
 #include <string.h>
@@ -98,6 +99,24 @@
     return lLen;
 }
 
+PdfDate PdfFileInputStream::GetModifiedDate()
+{
+    
+    struct stat file_stat;
+    int fp = fileno(m_hFile);
+    fstat(fp, &file_stat);
+    return PdfDate(file_stat.st_mtime);
+}
+
+
+PdfDate PdfFileInputStream::GetCreationDate()
+{
+    struct stat file_stat;
+    int fp = fileno(m_hFile);
+    fstat(fp, &file_stat);
+    return PdfDate(file_stat.st_ctime);
+}
+
 FILE*
 PdfFileInputStream::GetHandle()
 {
Index: src/base/PdfInputStream.h
===================================================================
--- src/base/PdfInputStream.h	(revision 1697)
+++ src/base/PdfInputStream.h	(working copy)
@@ -35,6 +35,7 @@
 #define _PDF_INPUT_STREAM_H_
 
 #include "PdfDefines.h"
+#include "base\PdfDate.h"
 
 namespace PoDoFo {
 
@@ -103,6 +104,16 @@
      */
     pdf_long GetFileLength();
 
+    /** Get the modified date of the file.
+     * \return the file modified date
+     */
+    PdfDate GetModifiedDate();
+
+    /** Get the creation date of the file.
+    * \return the file creation date
+    */
+    PdfDate GetCreationDate();
+    
     /** Get the internal FILE handle.
      *  \return the internal FILE handle
      */
Index: src/doc/PdfFileSpec.cpp
===================================================================
--- src/doc/PdfFileSpec.cpp	(revision 1697)
+++ src/doc/PdfFileSpec.cpp	(working copy)
@@ -182,7 +182,12 @@
     // Add additional information about the embedded file to the stream
     PdfDictionary params;
     params.AddKey( "Size", static_cast<pdf_int64>(stream.GetFileLength()) );
-    // TODO: CreationDate and ModDate
+    PdfString mod_date;
+    stream.GetModifiedDate().ToString(mod_date);
+    params.AddKey("ModDate", mod_date);
+    PdfString creation_date;
+    stream.GetCreationDate().ToString(creation_date);
+    params.AddKey("CreationDate", creation_date);
     pStream->GetDictionary().AddKey("Params", params );
 }
 
@@ -291,7 +296,12 @@
     // Add additional information about the embedded file to the stream
     PdfDictionary params;
     params.AddKey( "Size", static_cast<pdf_int64>(stream.GetFileLength()) );
-    // TODO: CreationDate and ModDate
+    PdfString mod_date;
+    stream.GetModifiedDate().ToString(mod_date);
+    params.AddKey("ModDate", mod_date);
+    PdfString creation_date;
+    stream.GetCreationDate().ToString(creation_date);
+    params.AddKey("CreationDate", creation_date);
     pStream->GetDictionary().AddKey("Params", params );
 }
 
