diff --git a/rfb/CMsgReaderV3.cxx b/rfb/CMsgReaderV3.cxx
index b8242a0..9370804 100644
--- a/rfb/CMsgReaderV3.cxx
+++ b/rfb/CMsgReaderV3.cxx
@@ -58,8 +58,15 @@
     case msgTypeSetColourMapEntries: readSetColourMapEntries(); break;
     case msgTypeBell:                readBell(); break;
     case msgTypeServerCutText:       readServerCutText(); break;
+
     case msgTypeFileListData:
+    case msgTypeFileDownloadData:
+    case msgTypeFileUploadCancel:
+    case msgTypeFileDownloadFailed:
+    case msgTypeFileDirSizeData:
+    case msgTypeFileLastRequestFailed:
       handler->processFTMsg(type); break;
+
     default:
       fprintf(stderr, "unknown message type %d\n", type);
       throw Exception("unknown message type");
diff --git a/rfb/FileManager.cxx b/rfb/FileManager.cxx
index 1bd3ab6..44d7890 100644
--- a/rfb/FileManager.cxx
+++ b/rfb/FileManager.cxx
@@ -43,7 +43,7 @@
   strcpy(m_szFilename, pFilename);
 
   m_pFile = fopen(m_szFilename, m_szMode);
-  
+
   if (m_pFile == NULL) {
     return false;
   } else {
diff --git a/rfb/FileReader.cxx b/rfb/FileReader.cxx
index 13c677f..063b742 100644
--- a/rfb/FileReader.cxx
+++ b/rfb/FileReader.cxx
@@ -33,7 +33,7 @@
 bool 
 FileReader::read(void *pBuf, unsigned int count, unsigned int *pBytesRead)
 {
-  if (m_pFile == NULL) return false;
+  if (!isCreated()) return false;
 
   *pBytesRead = fread(pBuf, 1, count, m_pFile);
   
@@ -41,3 +41,9 @@
  
   return true;
 }
+
+unsigned int 
+FileReader::getTime()
+{
+  return 0;
+}
diff --git a/rfb/FileReader.h b/rfb/FileReader.h
index e6ec064..12cdfa1 100644
--- a/rfb/FileReader.h
+++ b/rfb/FileReader.h
@@ -32,6 +32,8 @@
     FileReader();
 
     bool read(void *pBuf, unsigned int count, unsigned int *pBytesRead);
+
+    unsigned int getTime();
   };
 }
 #endif // __RFB_FILEREADER_H__
diff --git a/rfb/FileWriter.cxx b/rfb/FileWriter.cxx
index 9d8c4a5..9c06c37 100644
--- a/rfb/FileWriter.cxx
+++ b/rfb/FileWriter.cxx
@@ -33,7 +33,7 @@
 bool 
 FileWriter::write(const void *pBuf, unsigned int count, unsigned int *pBytesWritten)
 {
-  if (m_pFile == NULL) return false;
+  if (!isCreated()) return false;
 
   unsigned int bytesWritten = fwrite(pBuf, 1, count, m_pFile);
 
@@ -42,3 +42,9 @@
   *pBytesWritten = bytesWritten;
   return true;
 }
+
+bool 
+FileWriter::setTime(unsigned int modTime)
+{
+  return false;
+}
diff --git a/rfb/FileWriter.h b/rfb/FileWriter.h
index 3b3318a..e522ae1 100644
--- a/rfb/FileWriter.h
+++ b/rfb/FileWriter.h
@@ -32,6 +32,7 @@
     FileWriter();
 
     bool write(const void *pBuf, unsigned int count, unsigned int *pBytesWritten);
+    bool setTime(unsigned int modTime);
   };
 }
 
