diff --git a/tools/winapi_check/winapi.pm b/tools/winapi_check/winapi.pm
index 7dd7cfc..c7302e9 100644
--- a/tools/winapi_check/winapi.pm
+++ b/tools/winapi_check/winapi.pm
@@ -228,14 +228,18 @@
 
     my $options = \${$self->{OPTIONS}};
     my $output = \${$self->{OUTPUT}};
-    my $function_arguments = \%{$self->{FUNCTION_ARGUMENTS}};
-    my $function_ordinal = \%{$self->{FUNCTION_ORDINAL}};
-    my $function_calling_convention = \%{$self->{FUNCTION_CALLING_CONVENTION}};
+    my $function_internal_arguments = \%{$self->{FUNCTION_INTERNAL_ARGUMENTS}};
+    my $function_external_arguments = \%{$self->{FUNCTION_EXTERNAL_ARGUMENTS}};
+    my $function_internal_ordinal = \%{$self->{FUNCTION_INTERNAL_ORDINAL}};
+    my $function_external_ordinal = \%{$self->{FUNCTION_EXTERNAL_ORDINAL}};
+    my $function_internal_calling_convention = \%{$self->{FUNCTION_INTERNAL_CALLING_CONVENTION}};
+    my $function_external_calling_convention = \%{$self->{FUNCTION_EXTERNAL_CALLING_CONVENTION}};
     my $function_internal_name = \%{$self->{FUNCTION_INTERNAL_NAME}};
     my $function_external_name = \%{$self->{FUNCTION_EXTERNAL_NAME}};
     my $function_stub = \%{$self->{FUNCTION_STUB}};
     my $function_forward = \%{$self->{FUNCTION_FORWARD}};
-    my $function_module = \%{$self->{FUNCTION_MODULE}};
+    my $function_internal_module = \%{$self->{FUNCTION_INTERNAL_MODULE}};
+    my $function_external_module = \%{$self->{FUNCTION_EXTERNAL_MODULE}};
     my $modules = \%{$self->{MODULES}};
     my $module_files = \%{$self->{MODULE_FILES}};
 
@@ -283,18 +287,29 @@
 	    # FIXME: Internal name existing more than once not handled properly
 	    $$function_internal_name{$external_name} = $internal_name;
 	    $$function_external_name{$internal_name} = $external_name;
-	    $$function_arguments{$internal_name} = $arguments;
-	    $$function_ordinal{$internal_name} = $ordinal;
-	    $$function_calling_convention{$internal_name} = $calling_convention;
-	    if(!$$function_module{$internal_name}) {
-		$$function_module{$internal_name} = "$module";
-	    } elsif($$function_module{$internal_name} !~ /$module/) {
+	    $$function_internal_arguments{$internal_name} = $arguments;
+	    $$function_external_arguments{$external_name} = $arguments;
+	    $$function_internal_ordinal{$internal_name} = $ordinal;
+	    $$function_external_ordinal{$external_name} = $ordinal;
+	    $$function_internal_calling_convention{$internal_name} = $calling_convention;
+	    $$function_external_calling_convention{$external_name} = $calling_convention;
+	    if(!$$function_internal_module{$internal_name}) {
+		$$function_internal_module{$internal_name} = "$module";
+	    } elsif($$function_internal_module{$internal_name} !~ /$module/) {
 		if(0) {
 		    $$output->write("$file: $external_name: the internal function ($internal_name) " . 
-				    "already belongs to a module ($$function_module{$internal_name})\n");
+				    "already belongs to a module ($$function_internal_module{$internal_name})\n");
 		}
-		$$function_module{$internal_name} .= " & $module";
-
+		$$function_internal_module{$internal_name} .= " & $module";
+	    }
+	    if(!$$function_external_module{$external_name}) {
+		$$function_external_module{$external_name} = "$module";
+	    } elsif($$function_external_module{$external_name} !~ /$module/) {
+		if(0) {
+		    $$output->write("$file: $internal_name: the external function ($external_name) " . 
+				    "already belongs to a module ($$function_external_module{$external_name})\n");
+		}
+		$$function_external_module{$external_name} .= " & $module";
 	    }
 
 	    if(0 && $$options->spec_mismatch) {
@@ -346,10 +361,17 @@
 
 	    # FIXME: Internal name existing more than once not handled properly
 	    $$function_stub{$internal_name} = 1;
-	    if(!$$function_module{$internal_name}) {
-		$$function_module{$internal_name} = "$module";
-	    } elsif($$function_module{$internal_name} !~ /$module/) {
-		$$function_module{$internal_name} .= " & $module";
+	    $$function_internal_ordinal{$internal_name} = $ordinal;
+	    $$function_external_ordinal{$external_name} = $ordinal;
+	    if(!$$function_internal_module{$internal_name}) {
+		$$function_internal_module{$internal_name} = "$module";
+	    } elsif($$function_internal_module{$internal_name} !~ /$module/) {
+		$$function_internal_module{$internal_name} .= " & $module";
+	    }
+	    if(!$$function_external_module{$external_name}) {
+		$$function_external_module{$external_name} = "$module";
+	    } elsif($$function_external_module{$external_name} !~ /$module/) {
+		$$function_external_module{$external_name} .= " & $module";
 	    }
 	} elsif(/^(\d+|@)\s+forward(?:\s+(?:-noimport|-norelay|-i386|-ret64))?\s+(\S+)\s+(\S+)\.(\S+)$/) {
 	    $ordinal = $1;
@@ -381,11 +403,8 @@
     close(IN);
 
     $$modules{$module}++;
-    if(defined($module_file)) {
-	$$module_files{$module} = $module_file;
-    } else {
-	$$module_files{$module} = "$module.drv";
-    }
+
+    $$module_files{$module} = $file;
 }
 
 sub name {
@@ -584,23 +603,23 @@
     return $$module_files{$module};
 }
 
-sub all_functions {
+sub all_internal_functions {
     my $self = shift;
-    my $function_calling_convention = \%{$self->{FUNCTION_CALLING_CONVENTION}};
+    my $function_internal_calling_convention = \%{$self->{FUNCTION_INTERNAL_CALLING_CONVENTION}};
 
-    return sort(keys(%$function_calling_convention));
+    return sort(keys(%$function_internal_calling_convention));
 }
 
-sub all_functions_in_module {
+sub all_internal_functions_in_module {
     my $self = shift;
-    my $function_calling_convention = \%{$self->{FUNCTION_CALLING_CONVENTION}};
-    my $function_module = \%{$self->{FUNCTION_MODULE}};
+    my $function_internal_calling_convention = \%{$self->{FUNCTION_INTERNAL_CALLING_CONVENTION}};
+    my $function_internal_module = \%{$self->{FUNCTION_INTERNAL_MODULE}};
 
     my $module = shift;
 
     my @names;
-    foreach my $name (keys(%$function_calling_convention)) {
-	if($$function_module{$name} eq $module) {
+    foreach my $name (keys(%$function_internal_calling_convention)) {
+	if($$function_internal_module{$name} eq $module) {
 	    push @names, $name;
 	}
     }
@@ -615,29 +634,47 @@
     return sort(keys(%$function_stub));
 }
 
-sub all_functions_found {
+sub all_internal_functions_found {
     my $self = shift;
     my $function_found = \%{$self->{FUNCTION_FOUND}};
 
     return sort(keys(%$function_found));
 }
 
-sub function_ordinal {
+sub function_internal_ordinal {
     my $self = shift;
-    my $function_ordinal = \%{$self->{FUNCTION_ORDINAL}};
+    my $function_internal_ordinal = \%{$self->{FUNCTION_INTERNAL_ORDINAL}};
 
     my $name = shift;
 
-    return $$function_ordinal{$name};
+    return $$function_internal_ordinal{$name};
 }
 
-sub function_calling_convention {
+sub function_external_ordinal {
     my $self = shift;
-    my $function_calling_convention = \%{$self->{FUNCTION_CALLING_CONVENTION}};
+    my $function_external_ordinal = \%{$self->{FUNCTION_EXTERNAL_ORDINAL}};
 
     my $name = shift;
 
-    return $$function_calling_convention{$name};
+    return $$function_external_ordinal{$name};
+}
+
+sub function_internal_calling_convention {
+    my $self = shift;
+    my $function_internal_calling_convention = \%{$self->{FUNCTION_INTERNAL_CALLING_CONVENTION}};
+
+    my $name = shift;
+
+    return $$function_internal_calling_convention{$name};
+}
+
+sub function_external_calling_convention {
+    my $self = shift;
+    my $function_external_calling_convention = \%{$self->{FUNCTION_EXTERNAL_CALLING_CONVENTION}};
+
+    my $name = shift;
+
+    return $$function_external_calling_convention{$name};
 }
 
 sub function_external_name {
@@ -651,11 +688,11 @@
 
 sub is_function {
     my $self = shift;
-    my $function_calling_convention = \%{$self->{FUNCTION_CALLING_CONVENTION}};
+    my $function_internal_calling_convention = \%{$self->{FUNCTION_INTERNAL_CALLING_CONVENTION}};
 
     my $name = shift;
 
-    return $$function_calling_convention{$name};
+    return $$function_internal_calling_convention{$name};
 }
 
 sub is_shared_function {
@@ -676,22 +713,40 @@
     $$function_shared{$name} = 1;
 }
 
-sub function_arguments {
+sub function_internal_arguments {
     my $self = shift;
-    my $function_arguments = \%{$self->{FUNCTION_ARGUMENTS}};
+    my $function_internal_arguments = \%{$self->{FUNCTION_INTERNAL_ARGUMENTS}};
 
     my $name = shift;
 
-    return $$function_arguments{$name};
+    return $$function_internal_arguments{$name};
 }
 
-sub function_module {
+sub function_external_arguments {
     my $self = shift;
-    my $function_module = \%{$self->{FUNCTION_MODULE}};
+    my $function_external_arguments = \%{$self->{FUNCTION_EXTERNAL_ARGUMENTS}};
 
     my $name = shift;
 
-    return $$function_module{$name};
+    return $$function_external_arguments{$name};
+}
+
+sub function_internal_module {
+    my $self = shift;
+    my $function_internal_module = \%{$self->{FUNCTION_INTERNAL_MODULE}};
+
+    my $name = shift;
+
+    return $$function_internal_module{$name};
+}
+
+sub function_external_module {
+    my $self = shift;
+    my $function_external_module = \%{$self->{FUNCTION_EXTERNAL_MODULE}};
+
+    my $name = shift;
+
+    return $$function_external_module{$name};
 }
 
 sub function_stub {
@@ -703,7 +758,7 @@
     return $$function_stub{$name};
 }
 
-sub found_function {
+sub found_internal_function {
     my $self = shift;
     my $function_found = \%{$self->{FUNCTION_FOUND}};
 
@@ -712,7 +767,7 @@
     $$function_found{$name}++;
 }
 
-sub function_found {
+sub internal_function_found {
     my $self = shift;
     my $function_found = \%{$self->{FUNCTION_FOUND}};
 
