diff --git a/common/rdr/TLSErrno.h b/common/rdr/TLSErrno.h
new file mode 100644
index 0000000..c2ff023
--- /dev/null
+++ b/common/rdr/TLSErrno.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2012 Pierre Ossman for Cendio AB
+ *
+ * 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_TLSERRNO_H__
+#define __RDR_TLSERRNO_H__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_GNUTLS
+
+#include <errno.h>
+
+namespace rdr {
+
+  static inline void gnutls_errno_helper(gnutls_session session, int _errno)
+  {
+#if defined(HAVE_GNUTLS_SET_ERRNO)
+    gnutls_transport_set_errno(session, _errno);
+#elif defined(HAVE_GNUTLS_SET_GLOBAL_ERRNO)
+    gnutls_transport_set_global_errno(_errno);
+#else
+    errno = _errno;
+#endif
+  }
+};
+
+#endif
+
+#endif
diff --git a/common/rdr/TLSInStream.cxx b/common/rdr/TLSInStream.cxx
index e553085..4d2c9ec 100644
--- a/common/rdr/TLSInStream.cxx
+++ b/common/rdr/TLSInStream.cxx
@@ -25,12 +25,9 @@
 #include <rdr/Exception.h>
 #include <rdr/TLSException.h>
 #include <rdr/TLSInStream.h>
+#include <rdr/TLSErrno.h>
 #include <errno.h>
 
-#ifdef HAVE_OLD_GNUTLS
-#define gnutls_transport_set_global_errno(A) do { errno = (A); } while(0)
-#endif
-
 #ifdef HAVE_GNUTLS 
 using namespace rdr;
 
@@ -43,7 +40,7 @@
 
   try {
     if (!in->check(1, 1, false)) {
-      gnutls_transport_set_global_errno(EAGAIN);
+      gnutls_errno_helper(self->session, EAGAIN);
       return -1;
     }
 
@@ -53,7 +50,7 @@
     in->readBytes(data, size);
 
   } catch (Exception& e) {
-    gnutls_transport_set_global_errno(EINVAL);
+    gnutls_errno_helper(self->session, EINVAL);
     return -1;
   }
 
diff --git a/common/rdr/TLSOutStream.cxx b/common/rdr/TLSOutStream.cxx
index ec21670..ef32d7d 100644
--- a/common/rdr/TLSOutStream.cxx
+++ b/common/rdr/TLSOutStream.cxx
@@ -25,12 +25,9 @@
 #include <rdr/Exception.h>
 #include <rdr/TLSException.h>
 #include <rdr/TLSOutStream.h>
+#include <rdr/TLSErrno.h>
 #include <errno.h>
 
-#ifdef HAVE_OLD_GNUTLS
-#define gnutls_transport_set_global_errno(A) do { errno = (A); } while(0)
-#endif
-
 #ifdef HAVE_GNUTLS
 using namespace rdr;
 
@@ -46,7 +43,7 @@
     out->writeBytes(data, size);
     out->flush();
   } catch (Exception& e) {
-    gnutls_transport_set_global_errno(EINVAL);
+    gnutls_errno_helper(self->session, EINVAL);
     return -1;
   }
 
