diff --git a/common/rdr/TLSInStream.h b/common/rdr/TLSInStream.h
new file mode 100644
index 0000000..7fad6fa
--- /dev/null
+++ b/common/rdr/TLSInStream.h
@@ -0,0 +1,57 @@
+/* Copyright (C) 2005 Martin Koegler
+ * Copyright (C) 2010 TigerVNC Team
+ * 
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
+ * USA.
+ */
+
+#ifndef __RDR_TLSINSTREAM_H__
+#define __RDR_TLSINSTREAM_H__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_GNUTLS
+
+#include <gnutls/gnutls.h>
+#include <rdr/InStream.h>
+
+namespace rdr {
+
+  class TLSInStream : public InStream {
+  public:
+    TLSInStream(InStream* in, gnutls_session session);
+    virtual ~TLSInStream();
+
+    int pos();
+
+  private:
+    int overrun(int itemSize, int nItems, bool wait);
+    int readTLS(U8* buf, int len, bool wait);
+
+    gnutls_session session;
+    InStream* in;
+    int bufSize;
+    int offset;
+    U8* start;
+  };
+
+  ssize_t gnutls_InStream_pull(gnutls_transport_ptr,void*, size_t);
+
+};
+
+#endif
+#endif
