diff --git a/LCS/Stream/include/Stream/FileStream.h b/LCS/Stream/include/Stream/FileStream.h
index 92acc2c7f16770c390bb9c8cba484f36b57b144a..fb1142b43eb040d1df6fcbb57d9bc571dd97c3e6 100644
--- a/LCS/Stream/include/Stream/FileStream.h
+++ b/LCS/Stream/include/Stream/FileStream.h
@@ -11,6 +11,8 @@ class FileStream : public FileDescriptorBasedStream
   public:
 	    FileStream(const char *name); // read-only; existing file
 	    FileStream(const char *name, int mode); // rd/wr; create file
+	    FileStream(const char *name, int flags, int mode); // rd/wr; create file, use given flags
+						   
     virtual ~FileStream();
 };
 
diff --git a/LCS/Stream/src/FileStream.cc b/LCS/Stream/src/FileStream.cc
index da7548d6960f4a6ca0c62fd7b7ca7c853b088445..d65c1d71ea31966954cdd48844e0b2d5499bddd7 100644
--- a/LCS/Stream/src/FileStream.cc
+++ b/LCS/Stream/src/FileStream.cc
@@ -25,6 +25,12 @@ FileStream::FileStream(const char *name, int mode)
 }
 
 
+FileStream::FileStream(const char *name, int flags, int mode)
+{
+  if ((fd = open(name, flags, mode)) < 0) 
+    throw SystemCallException("open", errno, THROW_ARGS);
+}
+
 FileStream::~FileStream()
 {
 }