diff --git a/.cvsignore b/.cvsignore
index 94a7729..12278ad 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,2 @@
-openssl-0.9.8a-usa.tar.bz2
 libica-1.3.6-rc3.tar.bz2
+openssl-0.9.8b-usa.tar.bz2
diff --git a/openssl-0.9.8b-soversion.patch b/openssl-0.9.8b-soversion.patch
new file mode 100644
index 0000000..25c4899
--- /dev/null
+++ b/openssl-0.9.8b-soversion.patch
@@ -0,0 +1,47 @@
+Define and use a soname -- because we have to care about binary
+compatibility, we have to increment the soname in order to allow
+this version to co-exist with another versions and have everything
+work right.
+
+--- openssl-0.9.8b/Makefile.org.soversion	2006-05-11 11:53:26.000000000 +0200
++++ openssl-0.9.8b/Makefile.org	2006-05-11 12:14:05.000000000 +0200
+@@ -10,6 +10,7 @@
+ SHLIB_MAJOR=
+ SHLIB_MINOR=
+ SHLIB_EXT=
++SHLIB_SONAMEVER=6
+ PLATFORM=dist
+ OPTIONS=
+ CONFIGURE_ARGS=
+@@ -277,10 +278,9 @@
+ link-shared:
+ 	@ set -e; for i in ${SHLIBDIRS}; do \
+ 		$(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
+-			LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
++			LIBNAME=$$i LIBVERSION=${SHLIB_SONAMEVER} \
+ 			LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
+ 			symlink.$(SHLIB_TARGET); \
+-		libs="$$libs -l$$i"; \
+ 	done
+ 
+ build-shared: do_$(SHLIB_TARGET) link-shared
+@@ -291,7 +291,7 @@
+ 			libs="$(LIBKRB5) $$libs"; \
+ 		fi; \
+ 		$(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
+-			LIBNAME=$$i LIBVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} \
++			LIBNAME=$$i LIBVERSION=${SHLIB_SONAMEVER} \
+ 			LIBCOMPATVERSIONS=";${SHLIB_VERSION_HISTORY}" \
+ 			LIBDEPS="$$libs $(EX_LIBS)" \
+ 			link_a.$(SHLIB_TARGET); \
+--- openssl-0.9.8b/Configure.soversion	2006-05-11 11:53:26.000000000 +0200
++++ openssl-0.9.8b/Configure	2006-05-11 11:53:26.000000000 +0200
+@@ -1327,7 +1327,7 @@
+ 	elsif ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*\.[^\.]*$/)
+ 		{
+ 		my $sotmp = $1;
+-		s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.\$(SHLIB_MAJOR) .s$sotmp/;
++		s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.s$sotmp.\$(SHLIB_SONAMEVER) .s$sotmp/;
+ 		}
+ 	elsif ($shared_extension ne "" && $shared_extension =~ /^\.[^\.]*\.[^\.]*\.dylib$/)
+ 		{
diff --git a/openssl.spec b/openssl.spec
index 753d23d..d818758 100644
--- a/openssl.spec
+++ b/openssl.spec
@@ -5,7 +5,7 @@
 # 0.9.6c soversion = 3
 # 0.9.7a soversion = 4
 # 0.9.7ef soversion = 5
-# 0.9.8a soversion = 6
+# 0.9.8ab soversion = 6
 %define soversion 6
 
 # Number of threads to spawn when testing some threading fixes.
@@ -22,8 +22,8 @@
 
 Summary: The OpenSSL toolkit.
 Name: openssl
-Version: 0.9.8a
-Release: 6
+Version: 0.9.8b
+Release: 1
 Source: openssl-%{version}-usa.tar.bz2
 Source1: hobble-openssl
 Source2: Makefile.certificate
@@ -40,7 +40,7 @@ Source10: opensslconf-new-warning.h
 Patch0: openssl-0.9.8a-redhat.patch
 Patch1: openssl-0.9.8a-defaults.patch
 Patch2: openssl-0.9.8a-link-krb5.patch
-Patch3: openssl-0.9.8a-soversion.patch
+Patch3: openssl-0.9.8b-soversion.patch
 Patch4: openssl-0.9.8a-enginesdir.patch
 Patch5: openssl-0.9.8a-no-rpath.patch
 Patch6: openssl-0.9.7a-libica-autoconf.patch
@@ -388,6 +388,9 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/libssl.so.%{soversion}
 %postun -p /sbin/ldconfig
 
 %changelog
+* Thu May 11 2006 Tomas Mraz <tmraz@redhat.com> - 0.9.8b-1
+- upgrade to new version, stays ABI compatible
+
 * Tue Apr  4 2006 Tomas Mraz <tmraz@redhat.com> - 0.9.8a-6
 - fix stale open handles in libica (#177155)
 - fix build if 'rand' or 'passwd' in buildroot path (#178782)
diff --git a/sources b/sources
index 040ae54..e8e1c64 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-7c17a9014e33507d1c2721b66baccd30  openssl-0.9.8a-usa.tar.bz2
 ec1e464d40fb61fed27b7b0078d2e3dd  libica-1.3.6-rc3.tar.bz2
+c99f8df9f19fdd38ee784b0ac06c2221  openssl-0.9.8b-usa.tar.bz2