diff --git a/CHANGES b/CHANGES
index 5a32715cdbf3667addf408f2308088d8748d7084..a8f37bef01bf67b195405a79ad093bf9d850350a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -30,6 +30,7 @@
 	Sony NEWS4
 	BEOS and BEOS_R5
 	NeXT
+	SUNOS
      [Rich Salz]
 
   *) Experimental support for a new, fast, unbiased prime candidate generator,
diff --git a/Configure b/Configure
index b97f9617db2d9afc17beaba03b957a87d273423a..a94b0dce59d65cba19607eeeaf1e2c7a63cd8d42 100755
--- a/Configure
+++ b/Configure
@@ -257,10 +257,6 @@ my %table=(
 "debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 "debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
-#### SunOS configs, assuming sparc for the gcc one.
-#"sunos-cc", "cc:-O4 -DNOPROTO -DNOCONST::(unknown):SUNOS::DES_UNROLL:${no_asm}::",
-"sunos-gcc","gcc:-O3 -mv8 -Dssize_t=int::(unknown):SUNOS::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL DES_PTR DES_RISC1:${no_asm}::",
-
 #### IRIX 5.x configs
 # -mips2 flag is added by ./config when appropriate.
 "irix-gcc","gcc:-O3 -DTERMIOS -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK DES_UNROLL DES_RISC2 DES_PTR BF_PTR:${mips32_asm}:o32:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
diff --git a/crypto/dso/dso_dlfcn.c b/crypto/dso/dso_dlfcn.c
index 4a56aace0e367d952715dad514a036120945938c..0135cc1cd3f485c89735d819915911bf57e149dd 100644
--- a/crypto/dso/dso_dlfcn.c
+++ b/crypto/dso/dso_dlfcn.c
@@ -153,11 +153,7 @@ DSO_METHOD *DSO_METHOD_dlfcn(void)
 #		endif
 #	endif
 #else
-#	ifdef OPENSSL_SYS_SUNOS
-#		define DLOPEN_FLAG 1
-#	else
-#		define DLOPEN_FLAG RTLD_NOW /* Hope this works everywhere else */
-#	endif
+#	define DLOPEN_FLAG RTLD_NOW /* Hope this works everywhere else */
 #endif
 
 /* For this DSO_METHOD, our meth_data STACK will contain;
diff --git a/crypto/o_time.c b/crypto/o_time.c
index 84aa5c39fc68a0624ee95e55e41deea72de35efb..362e9e71dc1335b3e20d6c552b64f2b536232dca 100644
--- a/crypto/o_time.c
+++ b/crypto/o_time.c
@@ -82,7 +82,7 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
 	{
 	struct tm *ts = NULL;
 
-#if defined(OPENSSL_THREADS) && !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_OS2) && (!defined(OPENSSL_SYS_VMS) || defined(gmtime_r)) && !defined(OPENSSL_SYS_MACOSX) && !defined(OPENSSL_SYS_SUNOS)
+#if defined(OPENSSL_THREADS) && !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_OS2) && (!defined(OPENSSL_SYS_VMS) || defined(gmtime_r)) && !defined(OPENSSL_SYS_MACOSX)
 	/* should return &data, but doesn't on some systems,
 	   so we don't even look at the return value */
 	gmtime_r(timer,result);
diff --git a/crypto/ocsp/ocsp_ht.c b/crypto/ocsp/ocsp_ht.c
index bac35f8de156eea5a2e24fc2edf082c9b36c9cee..268f575bb0fac8aa068c2a768a913e0cb8671291 100644
--- a/crypto/ocsp/ocsp_ht.c
+++ b/crypto/ocsp/ocsp_ht.c
@@ -65,9 +65,6 @@
 #include <openssl/ocsp.h>
 #include <openssl/err.h>
 #include <openssl/buffer.h>
-#ifdef OPENSSL_SYS_SUNOS
-#define strtoul (unsigned long)strtol
-#endif /* OPENSSL_SYS_SUNOS */
 
 /* Stateful OCSP request code, supporting non-blocking I/O */
 
diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c
index 46128fec0e86d8097260ded0203ec6f77b598693..9ec8883b390529b2542e294b4ad2b37cddf866d9 100644
--- a/crypto/ui/ui_openssl.c
+++ b/crypto/ui/ui_openssl.c
@@ -244,7 +244,7 @@
 # define TTY_set(tty,data)	ioctl(tty,TIOCSETP,data)
 #endif
 
-#if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_SUNOS)
+#if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS)
 # include <sys/ioctl.h>
 #endif
 
@@ -264,10 +264,6 @@ struct IOSB {
 	};
 #endif
 
-#ifdef OPENSSL_SYS_SUNOS
-	typedef int sig_atomic_t;
-#endif
-
 #if defined(MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE)
 /*
  * This one needs work. As a matter of fact the code is unoperational
diff --git a/e_os2.h b/e_os2.h
index aa4c10ce7e840e8adb0b3b7c6f45fab5562b19d2..7850169dbe683aa8b1dd08e7bf811256a096e16b 100644
--- a/e_os2.h
+++ b/e_os2.h
@@ -168,9 +168,6 @@ extern "C" {
 # ifdef OPENSSL_SYSNAME_MACOSX
 #  define OPENSSL_SYS_MACOSX
 # endif
-# ifdef OPENSSL_SYSNAME_SUNOS
-#  define OPENSSL_SYS_SUNOS
-#endif
 # if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY)
 #  define OPENSSL_SYS_CRAY
 # endif
@@ -269,10 +266,6 @@ extern "C" {
 #  define ossl_ssize_t long
 #endif
 
-#if defined(OPENSSL_SYS_SUNOS)
-#  define ssize_t int
-#endif
-
 #if defined(__ultrix) && !defined(ssize_t)
 #  define ossl_ssize_t int 
 #endif