diff -Naur openssl-0.9.8o.orig/Configure openssl-0.9.8o/Configure
--- openssl-0.9.8o.orig/Configure	2010-06-02 15:56:05.000000000 -0400
+++ openssl-0.9.8o/Configure	2010-06-02 15:56:25.000000000 -0400
@@ -590,6 +590,7 @@
 my $prefix="";
 my $libdir="";
 my $openssldir="";
+my $enginesdir="";
 my $exe_ext="";
 my $install_prefix= "$ENV{'INSTALL_PREFIX'}";
 my $cross_compile_prefix="";
@@ -837,6 +838,10 @@
 				{
 				$openssldir=$1;
 				}
+			elsif (/^--enginesdir=(.*)$/)
+				{
+				$enginesdir=$1;
+				}
 			elsif (/^--install.prefix=(.*)$/)
 				{
 				$install_prefix=$1;
@@ -1111,6 +1116,7 @@
 
 $openssldir=$prefix . "/ssl" if $openssldir eq "";
 $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/])/;
+$enginesdir="$prefix/lib/engines" if $enginesdir eq "";
 
 
 print "IsMK1MF=$IsMK1MF\n";
@@ -1696,7 +1702,7 @@
 		# $foo is to become "$prefix/lib$multilib/engines";
 		# as Makefile.org and engines/Makefile are adapted for
 		# $multilib suffix.
-		my $foo = "$prefix/lib/engines";
+		my $foo = $enginesdir;
 		$foo =~ s/\\/\\\\/g;
 		print OUT "#define ENGINESDIR \"$foo\"\n";
 		}
diff -Naur openssl-0.9.8o.orig/engines/Makefile openssl-0.9.8o/engines/Makefile
--- openssl-0.9.8o.orig/engines/Makefile	2010-06-02 15:56:05.000000000 -0400
+++ openssl-0.9.8o/engines/Makefile	2010-06-02 15:56:25.000000000 -0400
@@ -92,7 +92,7 @@
 	@[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
 	@if [ -n "$(SHARED_LIBS)" ]; then \
 		set -e; \
-		$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines; \
+		$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/lib/openssl/engines; \
 		for l in $(LIBNAMES); do \
 			( echo installing $$l; \
 			  if [ "$(PLATFORM)" != "Cygwin" ]; then \
@@ -101,13 +101,13 @@
 				*DSO_DL*)	sfx="sl";;	\
 				*)		sfx="bad";;	\
 				esac; \
-				cp lib$$l.$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new; \
+				cp lib$$l.$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl/engines/lib$$l.$$sfx.new; \
 			  else \
 			  	sfx="so"; \
-				cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new; \
+				cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl/engines/lib$$l.$$sfx.new; \
 			  fi; \
-			  chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new; \
-			  mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/lib$$l.$$sfx ); \
+			  chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl/engines/lib$$l.$$sfx.new; \
+			  mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl/engines/lib$$l.$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl/engines/lib$$l.$$sfx ); \
 		done; \
 	fi
 
diff -Naur openssl-0.9.8o.orig/Makefile openssl-0.9.8o/Makefile
--- openssl-0.9.8o.orig/Makefile	2010-06-02 15:56:04.000000000 -0400
+++ openssl-0.9.8o/Makefile	2010-06-02 15:56:25.000000000 -0400
@@ -622,7 +622,7 @@
 install_sw:
 	@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
 		$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
-		$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
+		$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/openssl/engines \
 		$(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
 		$(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
 		$(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
