diff --git a/stdlib/mkmf.rb b/stdlib/mkmf.rb
index c4e4c04..216eaa6 100644
--- a/stdlib/mkmf.rb
+++ b/stdlib/mkmf.rb
@@ -112,20 +112,22 @@ def map_dir(dir, map = nil)
 end

 topdir = File.dirname(libdir = File.dirname(__FILE__))
 extdir = File.expand_path("ext", topdir)
 $extmk = File.expand_path($0)[0, extdir.size+1] == extdir+"/"
 if not $extmk and File.exist?(Config::CONFIG["archdir"] + "/ruby.h")
   $hdrdir = $topdir = Config::CONFIG["archdir"]
 elsif File.exist?(($top_srcdir ||= topdir)  + "/ruby.h") and
     File.exist?(($topdir ||= Config::CONFIG["topdir"]) + "/config.h")
   $hdrdir = $top_srcdir
+elsif File.exist?((hdrdir = Config::CONFIG["rubyhdrdir"]) + "/ruby.h")
+  $hdrdir = hdrdir
 else
   abort "can't find header files for ruby."
 end

 OUTFLAG = CONFIG['OUTFLAG']
 CPPOUTFILE = CONFIG['CPPOUTFILE']

 CONFTEST_C = "conftest.c"

 class String