--- aclocal.in.orig	Mon Jan 11 11:35:27 1999
+++ aclocal.in	Wed Jul 19 19:13:05 2000
@@ -34,6 +34,8 @@
 # Note that this isn't pkgdatadir, but a separate directory.
 $acdir = "@datadir@/aclocal";
 
+$acdir_x11 = '%%X11BASE%%/share/aclocal';
+
 # Some globals.
 
 # Exit status.
@@ -103,6 +105,9 @@
 
 
 local (@dirlist) = &parse_arguments (@ARGV);
+
+unshift @dirlist, $acdir_x11 if -d "$acdir_x11/.";
+
 &scan_m4_files ($acdir, @dirlist);
 &scan_configure;
 if (! $exit_status)
@@ -266,12 +271,13 @@
 	$file_contents{'acinclude.m4'} = &scan_file ('acinclude.m4');
     }
 
+    local (@skipinolist) = ();
     local ($m4dir);
     foreach $m4dir (@dirlist)
     {
 	opendir (DIR, $m4dir)
 	    || die "aclocal: couldn't open directory \`$m4dir': $!\n";
-	local ($file, $fullfile, $expr);
+	local ($file, $fullfile, $ino, $expr);
 	foreach $file (sort grep (! /^\./, readdir (DIR)))
 	{
 	    # Only examine .m4 files.
@@ -281,6 +287,12 @@
 	    next if $file eq 'aclocal.m4';
 
 	    $fullfile = $m4dir . '/' . $file;
+
+	    # Do not scan a file more than once.
+	    $ino = (stat($fullfile))[1];
+	    next if grep($ino eq $_, @skipinolist);
+	    push @skipinolist, $ino;
+
 	    $file_contents{$fullfile} = &scan_file ($fullfile);
 	}
 	closedir (DIR);
