diff --git a/CHANGES b/CHANGES
index 482dab7..53f5063 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,9 @@
 ﻿
-####################### V 1.7.4.5:
+Features:
+	Added the --experimental option that enables use of features that might
+	change in the future.
+
+####################### V 1.7.4.5 (not released):
 
 Corrections:
 	On connect() failure and in some other situations Socat tries to get
diff --git a/VERSION b/VERSION
index e17e390..ceaf471 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-"1.7.4.5"
+"1.7.4.5+"
diff --git a/configure.ac b/configure.ac
index 7c7b1f1..693ab3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -472,8 +472,8 @@
   CFLAGS_ORIG=$CFLAGS
   LIBS_ORIG=$LIBS
   sc_usable_readline_found=
-  
-  for D in "" "/usr/local" "/opt/local" "/sw" "/opt/freeware" "/usr/sfw"; do    
+
+  for D in "" "/usr/local" "/opt/local" "/sw" "/opt/freeware" "/usr/sfw"; do
     if test -n "$D" ; then
       CPPFLAGS="$CPPFLAGS -I$D/include"
       CFLAGS="$CFLAGS -L$D/lib"
@@ -482,12 +482,12 @@
       DLOC="in default location"
     fi
     AC_MSG_CHECKING(for usable readline $DLOC)
-    
+
     # Some systems require -lcurses, some require -lncurses.
     # Mac OS X 10.4 (and others) ships with libedit masquerading as readline,
     # but it doesn't work well with socat. It can be recognized by the absence
     # of append_history.
-    
+
     for L in "" "-lcurses" "-lncurses"; do
       LIBS="$LIBS_ORIG -lreadline $L"
       AC_TRY_LINK(
@@ -499,7 +499,7 @@
         [ sc_usable_readline_found=1
           break ])
     done
-    
+
     if test -n "$sc_usable_readline_found"; then
       AC_MSG_RESULT(yes)
       AC_DEFINE(HAVE_READLINE_READLINE_H,1)
@@ -514,7 +514,7 @@
       LIBS=$LIBS_ORIG
     fi
   done
-  
+
   if test -z "$sc_usable_readline_found"; then
     AC_MSG_WARN([no suitable version of readline found; perhaps you need to install a newer version])
   fi
@@ -1161,7 +1161,7 @@
  AC_MSG_RESULT($ac_cv__posix_pthread_semantics)
 fi
 
- 
+
 # struct timespec
 AC_MSG_CHECKING(for struct timespec)
 AC_CACHE_VAL(sc_cv_struct_timespec,
@@ -1540,7 +1540,7 @@
 dnl Search for SSLv2_client_method, SSLv2_server_method
 AC_CHECK_FUNC(SSLv2_client_method, AC_DEFINE(HAVE_SSLv2_client_method), AC_CHECK_LIB(crypt, SSLv2_client_method, [LIBS=-lcrypt $LIBS]))
 AC_CHECK_FUNC(SSLv2_server_method, AC_DEFINE(HAVE_SSLv2_server_method), AC_CHECK_LIB(crypt, SSLv2_server_method, [LIBS=-lcrypt $LIBS]))
-dnl 
+dnl
 AC_CHECK_FUNC(SSLv3_client_method, AC_DEFINE(HAVE_SSLv3_client_method), AC_CHECK_LIB(crypt, SSLv3_client_method, [LIBS=-lcrypt $LIBS]))
 AC_CHECK_FUNC(SSLv3_server_method, AC_DEFINE(HAVE_SSLv3_server_method), AC_CHECK_LIB(crypt, SSLv3_server_method, [LIBS=-lcrypt $LIBS]))
 AC_CHECK_FUNC(SSLv23_client_method, AC_DEFINE(HAVE_SSLv23_client_method), AC_CHECK_LIB(crypt, SSLv23_client_method, [LIBS=-lcrypt $LIBS]))
@@ -1675,7 +1675,7 @@
 dnl If this method does not seem to work we run test programs that print the
 dnl length and signedness of the type.
 
-dnl do we have a -Werror option? 
+dnl do we have a -Werror option?
 dnl Does the test code compile with -Werror when types fit?
 CHANCE_TO_TYPECHECK=1
 CFLAGS1="$CFLAGS"; CFLAGS="$ERRONWARN $(echo "$CFLAGS1" | sed -e 's@-Wall@@g')"
@@ -2089,7 +2089,7 @@
   fi
   AC_MSG_RESULT($sc_cv_have_hosts_allow_table)
 fi # test -n "$WITH_LIBWRAP"
-  
+
 
 if test "$GCC" = yes; then
    CFLAGS="$CFLAGS"
diff --git a/doc/socat.yo b/doc/socat.yo
index 64c1851..02a70c0 100644
--- a/doc/socat.yo
+++ b/doc/socat.yo
@@ -118,6 +118,9 @@
    messages. 
 dit(bf(tt(-D)))
    Logs information about file descriptors before starting the transfer phase.
+dit(bf(tt(--experimental)))
+   New features that are not well tested or are subject to change in the future
+   must me explicitely enabled using this option.
 dit(bf(tt(-ly[<facility>])))
    Writes messages to syslog instead of stderr; severity as defined with -d
    option. With optional link(<facility>)(TYPE_FACILITY), the syslog type can
diff --git a/socat.c b/socat.c
index 44b7f64..664dc37 100644
--- a/socat.c
+++ b/socat.c
@@ -264,8 +264,9 @@
 	    }
 	 }
 	 break;
-      case 'W': if (socat_opts.lock.lockfile)
+      case 'W': if (socat_opts.lock.lockfile) {
 	    Error("only one -L and -W option allowed");
+	 }
 	 if (arg1[0][2]) {
 	    socat_opts.lock.lockfile = *arg1+2;
 	 } else {
@@ -291,6 +292,13 @@
 	 xioopts.preferred_ip = arg1[0][1];
 	 break;
 #endif /* WITH_IP4 || WITH_IP6 */
+      case '-':
+	 if (!strcmp("experimental", &arg1[0][2])) {
+	    xioopts.experimental = true;
+	 } else {
+	    Error1("unknown option \"%s\"; use option \"-h\" for help", arg1[0]);
+	 }
+	 break;
       case '\0':
       case ',':
       case ':':
@@ -389,6 +397,7 @@
 #if WITH_FILAN
    fputs("      -D     analyze file descriptors before loop\n", fd);
 #endif
+   fputs("      --experimental enable experimental features\n", fd);
    fputs("      -ly[facility]  log to syslog, using facility (default is daemon)\n", fd);
    fputs("      -lf<logfile>   log to file\n", fd);
    fputs("      -ls            log to stderr (default if no other log)\n", fd);
diff --git a/xio-readline.c b/xio-readline.c
index 0fbbb88..96e21f7 100644
--- a/xio-readline.c
+++ b/xio-readline.c
@@ -30,8 +30,7 @@
 			    int dummy1, int dummy2, int dummy3);
 
 
-const struct addrdesc addr_readline = {
-   "readline", 3, xioopen_readline, GROUP_FD|GROUP_TERMIOS|GROUP_READLINE, 0, 0, 0 HELP(NULL) };
+const struct addrdesc addr_readline = { "readline", 3, xioopen_readline, GROUP_FD|GROUP_TERMIOS|GROUP_READLINE, 0, 0, 0 HELP(NULL) };
 
 const struct optdesc opt_history_file = { "history-file", "history", OPT_HISTORY_FILE, GROUP_READLINE, PH_LATE, TYPE_STRING, OFUNC_OFFSET, XIO_OFFSETOF(para.readline.history_file) };
 const struct optdesc opt_prompt       = { "prompt",       NULL,      OPT_PROMPT,       GROUP_READLINE, PH_LATE, TYPE_STRING, OFUNC_OFFSET, XIO_OFFSETOF(para.readline.prompt) };
diff --git a/xio.h b/xio.h
index 0f89e55..fad024d 100644
--- a/xio.h
+++ b/xio.h
@@ -102,6 +102,7 @@
    char default_ip;	/* default prot.fam for IP based listen ('4' or '6') */
    char preferred_ip;	/* preferred prot.fam. for name resolution ('0' for
 			   unspecified, '4', or '6') */
+   bool experimental;	/* enable some features */
 } xioopts_t;
 
 /* pack the description of a lock file */
diff --git a/xioparam.c b/xioparam.c
index e225a3c..132cf34 100644
--- a/xioparam.c
+++ b/xioparam.c
@@ -20,7 +20,8 @@
    '\0',	/* logopt */
    NULL,	/* syslogfac */
    '4',		/* default_ip */
-   '4'		/* preferred_ip */
+   '4',		/* preferred_ip */
+   false 	/* experimental */
 } ;
 
 
