diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index c890bb537361cc5110904528e950375c48ea1148..ae31b9fcc2b673fb3a9ed9b40748de7f9140bf74 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -3,7 +3,7 @@ package Mkvcbuild;
 #
 # Package that generates build files for msvc build
 #
-# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.34 2008/12/02 10:39:31 mha Exp $
+# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.35 2008/12/20 22:04:02 mha Exp $
 #
 use Carp;
 use Win32;
@@ -312,6 +312,15 @@ sub mkvcbuild
         $p->AddReference($postgres);
     }
 
+    $mf = Project::read_file('src\backend\foreign\Makefile');
+    $mf =~ s{\\s*[\r\n]+}{}mg;
+    $mf =~ m{FDW\s*=\s*(.*)$}m || die 'Could not match in foreign makefile' . "\n";
+    foreach my $foreign (split /\s+/,$1)
+    {
+        my $proj = $solution->AddProject($foreign . '_fdw', 'dll', 'foreign', 'src\backend\foreign\\' . $foreign);
+        $proj->AddReference($postgres);
+    }
+
     $mf = Project::read_file('src\bin\scripts\Makefile');
     $mf =~ s{\\s*[\r\n]+}{}mg;
     $mf =~ m{PROGRAMS\s*=\s*(.*)$}m || die 'Could not match in bin\scripts\Makefile' . "\n";