- Report broken forwards.
- API files update.

diff --git a/tools/winapi_check/modules.pm b/tools/winapi_check/modules.pm
index 051aabf..1904ff3 100644
--- a/tools/winapi_check/modules.pm
+++ b/tools/winapi_check/modules.pm
@@ -47,6 +47,9 @@
     my $module;
     my $type;
 
+    $module = $file;
+    $module =~ s%^.*?([^/]+)\.spec$%$1%;
+
     open(IN, "< $file") || die "$file: $!\n";
     local $/ = "\n";
     my $header = 1;
@@ -58,7 +61,6 @@
 	/^$/ && next;
 
 	if($header)  {
-	    if(/^name\s*(\S*)/) { $module = $1; }
 	    if(/^\d+|@/) { $header = 0; $lookahead = 1; }
 	    next;
 	}
@@ -70,11 +72,6 @@
     }
     close(IN);
 
-    if(!defined($module)) {
-	$module = $file;
-	$module =~ s%^.*?([^/]+)\.spec|%$1%;
-    }
-
     if(!defined($type)) {
 	$type = "win32";
     }
diff --git a/tools/winapi_check/winapi_check b/tools/winapi_check/winapi_check
index 3b73fdd..a4814aa 100755
--- a/tools/winapi_check/winapi_check
+++ b/tools/winapi_check/winapi_check
@@ -138,6 +138,17 @@
     }
 }
 
+if(1) {
+    foreach my $winapi (@winapis) {
+	foreach my $broken_forward ($winapi->all_broken_forwards) {
+	    (my $module, my $external_name, my $forward_module, my $forward_external_name) = @$broken_forward;
+	    if($complete_module{$forward_module}) {
+		$output->write("$module.spec: forward is broken: $external_name => $forward_module.$forward_external_name\n");
+	    }
+	}
+    }
+}
+
 my $progress_current = 0;
 my $progress_max = scalar(@c_files);
 
diff --git a/tools/winapi_check/winapi_documentation.pm b/tools/winapi_check/winapi_documentation.pm
index cc6d868..a944f3e 100644
--- a/tools/winapi_check/winapi_documentation.pm
+++ b/tools/winapi_check/winapi_documentation.pm
@@ -78,12 +78,16 @@
 		my $found_ordinal = 0;
 
 		$module =~ s/\.(acm|dll|drv|exe|ocx)$//; # FIXME: Kludge
+		$module = "kernel" if $module eq "krnl386"; # FIXME: Kludge
+
 		foreach (split(/\n/, $documentation)) {
 		    if(/^(\s*)\*(\s*)(\@|\S+)(\s*)([\(\[])(\w+)\.(\@|\d+)([\)\]])/) {
 			my $external_name2 = $3;
 			my $module2 = $6;
 			my $ordinal2 = $7;
 
+
+
 			if(length($1) != 1 || length($2) < 1 ||
 			   length($4) < 1 || $5 ne "(" || $8 ne ")")
 			{
@@ -132,6 +136,7 @@
 
 		    my $_module2 = $module2;
 		    $_module2 =~ s/\.(acm|dll|drv|exe|ocx)$//; # FIXME: Kludge
+		    $_module2 = "kernel" if $_module2 eq "krnl386"; # FIXME: Kludge
 
 		    if($external_name eq $external_name2 &&
 		       lc($module) eq $_module2 &&