diff -up openssl-1.0.1/Makefile.shared.version openssl-1.0.1/Makefile.shared
--- openssl-1.0.1/Makefile.shared.version	2012-03-14 20:58:20.553350959 +0100
+++ openssl-1.0.1/Makefile.shared	2012-03-14 20:58:20.631352556 +0100
@@ -151,7 +151,7 @@ DO_GNU_SO=$(CALC_VERSIONS); \
 	SHLIB_SUFFIX=; \
 	ALLSYMSFLAGS='-Wl,--whole-archive'; \
 	NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
-	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
+	SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,--default-symver,--version-script=version.map -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
 
 DO_GNU_APP=LDFLAGS="$(CFLAGS)"
 
diff -up openssl-1.0.1/version.map.version openssl-1.0.1/version.map
--- openssl-1.0.1/version.map.version	2012-03-14 20:58:20.631352556 +0100
+++ openssl-1.0.1/version.map	2012-03-14 20:58:20.631352556 +0100
@@ -0,0 +1,7 @@
+OPENSSL_1.0.1 {
+    global:
+	    SSLeay;
+    local:
+	    _original*;
+	    _current*;
+};
--- openssl-1.0.1p/crypto/cversion.c.orig	2015-08-16 15:44:39.732602452 +0200
+++ openssl-1.0.1p/crypto/cversion.c	2015-08-16 15:45:16.262509801 +0200
@@ -97,7 +97,14 @@
     return ("not available");
 }
 
-unsigned long SSLeay(void)
+unsigned long _original_SSLeay(void)
 {
-    return (SSLEAY_VERSION_NUMBER);
+    return(0x10000003);
 }
+
+unsigned long _current_SSLeay(void)
+{
+    return(SSLEAY_VERSION_NUMBER);
+}
+__asm__(".symver _original_SSLeay,SSLeay@");
+__asm__(".symver _current_SSLeay,SSLeay@@OPENSSL_1.0.1");
--- openssl-1.0.1p/crypto/opensslv.h.orig	2015-08-16 15:44:39.733602449 +0200
+++ openssl-1.0.1p/crypto/opensslv.h	2015-08-16 15:47:04.895305120 +0200
@@ -88,7 +88,7 @@
  * should only keep the versions that are binary compatible with the current.
  */
 # define SHLIB_VERSION_HISTORY ""
-# define SHLIB_VERSION_NUMBER "1.0.0"
+# define SHLIB_VERSION_NUMBER "1.0.1"
 
 
 #ifdef  __cplusplus
