des_old.h doesn't really need to include des.h, so don't.  That will
avoid clashes with other code that have their own DES_ functions but
really only use OpenSSL's old des_ functions.
diff --git a/crypto/des/des_old.c b/crypto/des/des_old.c
index 76f4f56..1992697 100644
--- a/crypto/des/des_old.c
+++ b/crypto/des/des_old.c
@@ -73,6 +73,7 @@
  */
 
 #include <openssl/des_old.h>
+#include <openssl/des.h>
 #include <openssl/rand.h>
 
 const char *des_options(void)
diff --git a/crypto/des/des_old.h b/crypto/des/des_old.h
index 0fa708d..1d2781b 100644
--- a/crypto/des/des_old.h
+++ b/crypto/des/des_old.h
@@ -72,8 +72,8 @@
  *
  */
 
-#ifndef HEADER_DES_COMP_H
-#define HEADER_DES_COMP_H
+#ifndef HEADER_DES_OLD_H
+#define HEADER_DES_OLD_H
 
 #ifdef OPENSSL_NO_DES
 #error DES is disabled.
@@ -85,7 +85,6 @@
 
 #include <openssl/opensslconf.h> /* DES_LONG */
 #include <openssl/e_os2.h>	/* OPENSSL_EXTERN */
-#include <openssl/des.h>
 #include <openssl/symhacks.h>
 
 #ifdef OPENSSL_BUILD_SHLIBCRYPTO
diff --git a/crypto/des/destest.c b/crypto/des/destest.c
index 1c7936f..88fe32a 100644
--- a/crypto/des/destest.c
+++ b/crypto/des/destest.c
@@ -82,6 +82,7 @@
     return(0);
 }
 #else
+#include <openssl/des.h>
 #include <openssl/des_old.h>
 
 #if defined(PERL5) || defined(__FreeBSD__)
diff --git a/crypto/opensslconf.h.in b/crypto/opensslconf.h.in
index e849fe6..4f3711c 100644
--- a/crypto/opensslconf.h.in
+++ b/crypto/opensslconf.h.in
@@ -47,7 +47,7 @@
 #endif
 #endif
 
-#if defined(HEADER_DES_H) && !defined(DES_LONG)
+#if (defined(HEADER_DES_H) || defined(HEADER_DES_OLD_H)) && !defined(DES_LONG)
 /* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
  * %20 speed up (longs are 8 bytes, int's are 4). */
 #ifndef DES_LONG