diff --exclude psqlscan.c --exclude '*.vcxproj*' --exclude '*.rc' -ur orig/postgresql-9.2.4/src/tools/msvc/config_default.pl postgresql-9.2.4/src/tools/msvc/config_default.pl
--- orig/postgresql-9.2.4/src/tools/msvc/config_default.pl	2013-04-01 20:20:36.000000000 +0200
+++ postgresql-9.2.4/src/tools/msvc/config_default.pl	2013-08-17 18:46:57.563930100 +0200
@@ -10,18 +10,18 @@
 	  # blocksize => 8,         # --with-blocksize, 8kB by default
 	  # wal_blocksize => 8,     # --with-wal-blocksize, 8kB by default
 	  # wal_segsize => 16,      # --with-wal-segsize, 16MB by default
-	ldap    => 1,        # --with-ldap
-	nls     => undef,    # --enable-nls=<path>
-	tcl     => undef,    # --with-tls=<path>
-	perl    => undef,    # --with-perl
-	python  => undef,    # --with-python=<path>
-	krb5    => undef,    # --with-krb5=<path>
-	openssl => undef,    # --with-ssl=<path>
-	uuid    => undef,    # --with-ossp-uuid
-	xml     => undef,    # --with-libxml=<path>
-	xslt    => undef,    # --with-libxslt=<path>
-	iconv   => undef,    # (not in configure, path to iconv)
-	zlib    => undef     # --with-zlib=<path>
+	ldap    => 1,			# --with-ldap
+	nls     => undef,		# --enable-nls=<path>
+	tcl     => undef,		# --with-tls=<path>
+	perl    => undef,		# --with-perl
+	python  => undef,		# --with-python=<path>
+	krb5    => undef,		# --with-krb5=<path>
+	openssl => $ENV{OSGEO4W_ROOT},	# --with-ssl=<path>
+	uuid    => undef,		# --with-ossp-uuid
+	xml     => undef,		# --with-libxml=<path>
+	xslt    => undef,		# --with-libxslt=<path>
+	iconv   => $ENV{OSGEO4W_ROOT},	# (not in configure, path to iconv)
+	zlib    => $ENV{OSGEO4W_ROOT},	# --with-zlib=<path>
 };
 
 1;
diff --exclude psqlscan.c --exclude '*.vcxproj*' --exclude '*.rc' -ur orig/postgresql-9.2.4/src/tools/msvc/Mkvcbuild.pm postgresql-9.2.4/src/tools/msvc/Mkvcbuild.pm
--- orig/postgresql-9.2.4/src/tools/msvc/Mkvcbuild.pm	2013-04-01 20:20:36.000000000 +0200
+++ postgresql-9.2.4/src/tools/msvc/Mkvcbuild.pm	2013-08-17 17:57:57.180761200 +0200
@@ -47,9 +47,9 @@
 {
 	our $config = shift;
 
-	chdir('..\..\..') if (-d '..\msvc' && -d '..\..\..\src');
+	chdir('../../..') if (-d '../msvc' && -d '../../../src');
 	die 'Must run from root or msvc directory'
-	  unless (-d 'src\tools\msvc' && -d 'src');
+	  unless (-d 'src/tools/msvc' && -d 'src');
 
 	my $vsVersion = DetermineVisualStudioVersion();
 
@@ -65,28 +65,29 @@
 
 	$libpgport = $solution->AddProject('libpgport', 'lib', 'misc');
 	$libpgport->AddDefine('FRONTEND');
-	$libpgport->AddFiles('src\port', @pgportfiles);
+	$libpgport->AddFiles('src/port', @pgportfiles);
 
-	$postgres = $solution->AddProject('postgres', 'exe', '', 'src\backend');
-	$postgres->AddIncludeDir('src\backend');
-	$postgres->AddDir('src\backend\port\win32');
-	$postgres->AddFile('src\backend\utils\fmgrtab.c');
+	$postgres = $solution->AddProject('postgres', 'exe', '', 'src/backend');
+	$postgres->AddIncludeDir('src/backend');
+	$postgres->AddDir('src/backend/port/win32');
+	$postgres->AddFile('src/backend/utils/fmgrtab.c');
 	$postgres->ReplaceFile(
-		'src\backend\port\dynloader.c',
-		'src\backend\port\dynloader\win32.c');
-	$postgres->ReplaceFile('src\backend\port\pg_sema.c',
-		'src\backend\port\win32_sema.c');
-	$postgres->ReplaceFile('src\backend\port\pg_shmem.c',
-		'src\backend\port\win32_shmem.c');
-	$postgres->ReplaceFile('src\backend\port\pg_latch.c',
-		'src\backend\port\win32_latch.c');
-	$postgres->AddFiles('src\port', @pgportfiles);
-	$postgres->AddDir('src\timezone');
-	$postgres->AddFiles('src\backend\parser', 'scan.l', 'gram.y');
-	$postgres->AddFiles('src\backend\bootstrap', 'bootscanner.l',
+		'src/backend/port/dynloader.c',
+		'src/backend/port/dynloader/win32.c');
+	$postgres->ReplaceFile('src/backend/port/pg_sema.c',
+		'src/backend/port/win32_sema.c');
+	$postgres->ReplaceFile('src/backend/port/pg_shmem.c',
+		'src/backend/port/win32_shmem.c');
+	$postgres->ReplaceFile('src/backend/port/pg_latch.c',
+		'src/backend/port/win32_latch.c');
+	#$postgres->AddFiles('src/port', @pgportfiles);
+	$postgres->AddReference($libpgport);
+	$postgres->AddDir('src/timezone');
+	$postgres->AddFiles('src/backend/parser', 'scan.l', 'gram.y');
+	$postgres->AddFiles('src/backend/bootstrap', 'bootscanner.l',
 		'bootparse.y');
-	$postgres->AddFiles('src\backend\utils\misc', 'guc-file.l');
-	$postgres->AddFiles('src\backend\replication', 'repl_scanner.l',
+	$postgres->AddFiles('src/backend/utils/misc', 'guc-file.l');
+	$postgres->AddFiles('src/backend/replication', 'repl_scanner.l',
 		'repl_gram.y');
 	$postgres->AddDefine('BUILDING_DLL');
 	$postgres->AddLibrary('wsock32.lib');
@@ -96,25 +97,25 @@
 	$postgres->FullExportDLL('postgres.lib');
 
 	my $snowball = $solution->AddProject('dict_snowball', 'dll', '',
-		'src\backend\snowball');
+		'src/backend/snowball');
 	$snowball->RelocateFiles(
-		'src\backend\snowball\libstemmer',
+		'src/backend/snowball/libstemmer',
 		sub {
 			return shift !~ /dict_snowball.c$/;
 		});
-	$snowball->AddIncludeDir('src\include\snowball');
+	$snowball->AddIncludeDir('src/include/snowball');
 	$snowball->AddReference($postgres);
 
 	my $plpgsql =
-	  $solution->AddProject('plpgsql', 'dll', 'PLs', 'src\pl\plpgsql\src');
-	$plpgsql->AddFiles('src\pl\plpgsql\src', 'gram.y');
+	  $solution->AddProject('plpgsql', 'dll', 'PLs', 'src/pl/plpgsql/src');
+	$plpgsql->AddFiles('src/pl/plpgsql/src', 'gram.y');
 	$plpgsql->AddReference($postgres);
 
 	if ($solution->{options}->{perl})
 	{
-		my $plperlsrc = "src\\pl\\plperl\\";
+		my $plperlsrc = "src/pl/plperl/";
 		my $plperl =
-		  $solution->AddProject('plperl', 'dll', 'PLs', 'src\pl\plperl');
+		  $solution->AddProject('plperl', 'dll', 'PLs', 'src/pl/plperl');
 		$plperl->AddIncludeDir($solution->{options}->{perl} . '/lib/CORE');
 		$plperl->AddDefine('PLPERL_HAVE_UID_GID');
 		foreach my $xs ('SPI.xs', 'Util.xs')
@@ -122,7 +123,7 @@
 			(my $xsc = $xs) =~ s/\.xs/.c/;
 			if (Solution::IsNewer("$plperlsrc$xsc", "$plperlsrc$xs"))
 			{
-				my $xsubppdir = first { -e "$_\\ExtUtils\\xsubpp" } @INC;
+				my $xsubppdir = first { -e "$_/ExtUtils/xsubpp" } @INC;
 				print "Building $plperlsrc$xsc...\n";
 				system( $solution->{options}->{perl}
 					  . '/bin/perl '
@@ -139,15 +140,15 @@
 			}
 		}
 		if (Solution::IsNewer(
-				'src\pl\plperl\perlchunks.h',
-				'src\pl\plperl\plc_perlboot.pl')
+				'src/pl/plperl/perlchunks.h',
+				'src/pl/plperl/plc_perlboot.pl')
 			|| Solution::IsNewer(
-				'src\pl\plperl\perlchunks.h',
-				'src\pl\plperl\plc_trusted.pl'))
+				'src/pl/plperl/perlchunks.h',
+				'src/pl/plperl/plc_trusted.pl'))
 		{
-			print 'Building src\pl\plperl\perlchunks.h ...' . "\n";
+			print 'Building src/pl/plperl/perlchunks.h ...' . "\n";
 			my $basedir = getcwd;
-			chdir 'src\pl\plperl';
+			chdir 'src/pl/plperl';
 			system( $solution->{options}->{perl}
 				  . '/bin/perl '
 				  . 'text2macro.pl '
@@ -155,36 +156,36 @@
 				  . 'plc_perlboot.pl plc_trusted.pl '
 				  . '>perlchunks.h');
 			chdir $basedir;
-			if ((!(-f 'src\pl\plperl\perlchunks.h'))
-				|| -z 'src\pl\plperl\perlchunks.h')
+			if ((!(-f 'src/pl/plperl/perlchunks.h'))
+				|| -z 'src/pl/plperl/perlchunks.h')
 			{
-				unlink('src\pl\plperl\perlchunks.h');    # if zero size
+				unlink('src/pl/plperl/perlchunks.h');    # if zero size
 				die 'Failed to create perlchunks.h' . "\n";
 			}
 		}
 		if (Solution::IsNewer(
-				'src\pl\plperl\plperl_opmask.h',
-				'src\pl\plperl\plperl_opmask.pl'))
+				'src/pl/plperl/plperl_opmask.h',
+				'src/pl/plperl/plperl_opmask.pl'))
 		{
-			print 'Building src\pl\plperl\plperl_opmask.h ...' . "\n";
+			print 'Building src/pl/plperl/plperl_opmask.h ...' . "\n";
 			my $basedir = getcwd;
-			chdir 'src\pl\plperl';
+			chdir 'src/pl/plperl';
 			system( $solution->{options}->{perl}
 				  . '/bin/perl '
 				  . 'plperl_opmask.pl '
 				  . 'plperl_opmask.h');
 			chdir $basedir;
-			if ((!(-f 'src\pl\plperl\plperl_opmask.h'))
-				|| -z 'src\pl\plperl\plperl_opmask.h')
+			if ((!(-f 'src/pl/plperl/plperl_opmask.h'))
+				|| -z 'src/pl/plperl/plperl_opmask.h')
 			{
-				unlink('src\pl\plperl\plperl_opmask.h');    # if zero size
+				unlink('src/pl/plperl/plperl_opmask.h');    # if zero size
 				die 'Failed to create plperl_opmask.h' . "\n";
 			}
 		}
 		$plperl->AddReference($postgres);
 		my @perl_libs =
 		  grep { /perl\d+.lib$/ }
-		  glob($solution->{options}->{perl} . '\lib\CORE\perl*.lib');
+		  glob($solution->{options}->{perl} . '/lib/CORE/perl*.lib');
 		if (@perl_libs == 1)
 		{
 			$plperl->AddLibrary($perl_libs[0]);
@@ -202,7 +203,7 @@
 		# Assume python.exe in specified dir.
 		open(P,
 			$solution->{options}->{python}
-			  . "\\python -c \"import sys;print(sys.prefix);print(str(sys.version_info[0])+str(sys.version_info[1]))\" |"
+			  . "/python -c \"import sys;print(sys.prefix);print(str(sys.version_info[0])+str(sys.version_info[1]))\" |"
 		) || die "Could not query for python version!\n";
 		my $pyprefix = <P>;
 		chomp($pyprefix);
@@ -217,82 +218,82 @@
 
 		my $pymajorver = substr($pyver, 0, 1);
 		my $plpython = $solution->AddProject('plpython' . $pymajorver,
-			'dll', 'PLs', 'src\pl\plpython');
-		$plpython->AddIncludeDir($pyprefix . '\include');
-		$plpython->AddLibrary($pyprefix . "\\Libs\\python$pyver.lib");
+			'dll', 'PLs', 'src/pl/plpython');
+		$plpython->AddIncludeDir($pyprefix . '/include');
+		$plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib");
 		$plpython->AddReference($postgres);
 	}
 
 	if ($solution->{options}->{tcl})
 	{
 		my $pltcl =
-		  $solution->AddProject('pltcl', 'dll', 'PLs', 'src\pl\tcl');
-		$pltcl->AddIncludeDir($solution->{options}->{tcl} . '\include');
+		  $solution->AddProject('pltcl', 'dll', 'PLs', 'src/pl/tcl');
+		$pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include');
 		$pltcl->AddReference($postgres);
-		if (-e $solution->{options}->{tcl} . '\lib\tcl85.lib')
+		if (-e $solution->{options}->{tcl} . '/lib/tcl85.lib')
 		{
 			$pltcl->AddLibrary(
-				$solution->{options}->{tcl} . '\lib\tcl85.lib');
+				$solution->{options}->{tcl} . '/lib/tcl85.lib');
 		}
 		else
 		{
 			$pltcl->AddLibrary(
-				$solution->{options}->{tcl} . '\lib\tcl84.lib');
+				$solution->{options}->{tcl} . '/lib/tcl84.lib');
 		}
 	}
 
 	$libpq = $solution->AddProject('libpq', 'dll', 'interfaces',
-		'src\interfaces\libpq');
+		'src/interfaces/libpq');
 	$libpq->AddDefine('FRONTEND');
 	$libpq->AddDefine('UNSAFE_STAT_OK');
-	$libpq->AddIncludeDir('src\port');
+	$libpq->AddIncludeDir('src/port');
 	$libpq->AddLibrary('wsock32.lib');
 	$libpq->AddLibrary('secur32.lib');
 	$libpq->AddLibrary('ws2_32.lib');
 	$libpq->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});
-	$libpq->UseDef('src\interfaces\libpq\libpqdll.def');
-	$libpq->ReplaceFile('src\interfaces\libpq\libpqrc.c',
-		'src\interfaces\libpq\libpq.rc');
+	$libpq->UseDef('src/interfaces/libpq/libpqdll.def');
+	$libpq->ReplaceFile('src/interfaces/libpq/libpqrc.c',
+		'src/interfaces/libpq/libpq.rc');
 	$libpq->AddReference($libpgport);
 
 	my $libpqwalreceiver =
 	  $solution->AddProject('libpqwalreceiver', 'dll', '',
-		'src\backend\replication\libpqwalreceiver');
-	$libpqwalreceiver->AddIncludeDir('src\interfaces\libpq');
+		'src/backend/replication/libpqwalreceiver');
+	$libpqwalreceiver->AddIncludeDir('src/interfaces/libpq');
 	$libpqwalreceiver->AddReference($postgres, $libpq);
 
 	my $pgtypes = $solution->AddProject(
 		'libpgtypes', 'dll',
-		'interfaces', 'src\interfaces\ecpg\pgtypeslib');
+		'interfaces', 'src/interfaces/ecpg/pgtypeslib');
 	$pgtypes->AddDefine('FRONTEND');
 	$pgtypes->AddReference($libpgport);
-	$pgtypes->UseDef('src\interfaces\ecpg\pgtypeslib\pgtypeslib.def');
-	$pgtypes->AddIncludeDir('src\interfaces\ecpg\include');
+	$pgtypes->UseDef('src/interfaces/ecpg/pgtypeslib/pgtypeslib.def');
+	$pgtypes->AddIncludeDir('src/interfaces/ecpg/include');
 
 	my $libecpg = $solution->AddProject('libecpg', 'dll', 'interfaces',
-		'src\interfaces\ecpg\ecpglib');
+		'src/interfaces/ecpg/ecpglib');
 	$libecpg->AddDefine('FRONTEND');
-	$libecpg->AddIncludeDir('src\interfaces\ecpg\include');
-	$libecpg->AddIncludeDir('src\interfaces\libpq');
-	$libecpg->AddIncludeDir('src\port');
-	$libecpg->UseDef('src\interfaces\ecpg\ecpglib\ecpglib.def');
+	$libecpg->AddIncludeDir('src/interfaces/ecpg/include');
+	$libecpg->AddIncludeDir('src/interfaces/libpq');
+	$libecpg->AddIncludeDir('src/port');
+	$libecpg->UseDef('src/interfaces/ecpg/ecpglib/ecpglib.def');
 	$libecpg->AddLibrary('wsock32.lib');
 	$libecpg->AddReference($libpq, $pgtypes, $libpgport);
 
 	my $libecpgcompat = $solution->AddProject(
 		'libecpg_compat', 'dll',
-		'interfaces',     'src\interfaces\ecpg\compatlib');
-	$libecpgcompat->AddIncludeDir('src\interfaces\ecpg\include');
-	$libecpgcompat->AddIncludeDir('src\interfaces\libpq');
-	$libecpgcompat->UseDef('src\interfaces\ecpg\compatlib\compatlib.def');
+		'interfaces',     'src/interfaces/ecpg/compatlib');
+	$libecpgcompat->AddIncludeDir('src/interfaces/ecpg/include');
+	$libecpgcompat->AddIncludeDir('src/interfaces/libpq');
+	$libecpgcompat->UseDef('src/interfaces/ecpg/compatlib/compatlib.def');
 	$libecpgcompat->AddReference($pgtypes, $libecpg, $libpgport);
 
 	my $ecpg = $solution->AddProject('ecpg', 'exe', 'interfaces',
-		'src\interfaces\ecpg\preproc');
-	$ecpg->AddIncludeDir('src\interfaces\ecpg\include');
-	$ecpg->AddIncludeDir('src\interfaces\libpq');
-	$ecpg->AddPrefixInclude('src\interfaces\ecpg\preproc');
-	$ecpg->AddFiles('src\interfaces\ecpg\preproc', 'pgc.l', 'preproc.y');
+		'src/interfaces/ecpg/preproc');
+	$ecpg->AddIncludeDir('src/interfaces/ecpg/include');
+	$ecpg->AddIncludeDir('src/interfaces/libpq');
+	$ecpg->AddPrefixInclude('src/interfaces/ecpg/preproc');
+	$ecpg->AddFiles('src/interfaces/ecpg/preproc', 'pgc.l', 'preproc.y');
 	$ecpg->AddDefine('MAJOR_VERSION=4');
 	$ecpg->AddDefine('MINOR_VERSION=2');
 	$ecpg->AddDefine('PATCHLEVEL=1');
@@ -301,24 +302,24 @@
 
 	my $pgregress_ecpg =
 	  $solution->AddProject('pg_regress_ecpg', 'exe', 'misc');
-	$pgregress_ecpg->AddFile('src\interfaces\ecpg\test\pg_regress_ecpg.c');
-	$pgregress_ecpg->AddFile('src\test\regress\pg_regress.c');
-	$pgregress_ecpg->AddIncludeDir('src\port');
-	$pgregress_ecpg->AddIncludeDir('src\test\regress');
+	$pgregress_ecpg->AddFile('src/interfaces/ecpg/test/pg_regress_ecpg.c');
+	$pgregress_ecpg->AddFile('src/test/regress/pg_regress.c');
+	$pgregress_ecpg->AddIncludeDir('src/port');
+	$pgregress_ecpg->AddIncludeDir('src/test/regress');
 	$pgregress_ecpg->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
 	$pgregress_ecpg->AddDefine('FRONTEND');
 	$pgregress_ecpg->AddReference($libpgport);
 
 	my $isolation_tester =
 	  $solution->AddProject('isolationtester', 'exe', 'misc');
-	$isolation_tester->AddFile('src\test\isolation\isolationtester.c');
-	$isolation_tester->AddFile('src\test\isolation\specparse.y');
-	$isolation_tester->AddFile('src\test\isolation\specscanner.l');
-	$isolation_tester->AddFile('src\test\isolation\specparse.c');
-	$isolation_tester->AddIncludeDir('src\test\isolation');
-	$isolation_tester->AddIncludeDir('src\port');
-	$isolation_tester->AddIncludeDir('src\test\regress');
-	$isolation_tester->AddIncludeDir('src\interfaces\libpq');
+	$isolation_tester->AddFile('src/test/isolation/isolationtester.c');
+	$isolation_tester->AddFile('src/test/isolation/specparse.y');
+	$isolation_tester->AddFile('src/test/isolation/specscanner.l');
+	$isolation_tester->AddFile('src/test/isolation/specparse.c');
+	$isolation_tester->AddIncludeDir('src/test/isolation');
+	$isolation_tester->AddIncludeDir('src/port');
+	$isolation_tester->AddIncludeDir('src/test/regress');
+	$isolation_tester->AddIncludeDir('src/interfaces/libpq');
 	$isolation_tester->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
 	$isolation_tester->AddDefine('FRONTEND');
 	$isolation_tester->AddLibrary('wsock32.lib');
@@ -326,29 +327,29 @@
 
 	my $pgregress_isolation =
 	  $solution->AddProject('pg_isolation_regress', 'exe', 'misc');
-	$pgregress_isolation->AddFile('src\test\isolation\isolation_main.c');
-	$pgregress_isolation->AddFile('src\test\regress\pg_regress.c');
-	$pgregress_isolation->AddIncludeDir('src\port');
-	$pgregress_isolation->AddIncludeDir('src\test\regress');
+	$pgregress_isolation->AddFile('src/test/isolation/isolation_main.c');
+	$pgregress_isolation->AddFile('src/test/regress/pg_regress.c');
+	$pgregress_isolation->AddIncludeDir('src/port');
+	$pgregress_isolation->AddIncludeDir('src/test/regress');
 	$pgregress_isolation->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
 	$pgregress_isolation->AddDefine('FRONTEND');
 	$pgregress_isolation->AddReference($libpgport);
 
 	# src/bin
 	my $initdb = AddSimpleFrontend('initdb');
-	$initdb->AddIncludeDir('src\interfaces\libpq');
-	$initdb->AddIncludeDir('src\timezone');
+	$initdb->AddIncludeDir('src/interfaces/libpq');
+	$initdb->AddIncludeDir('src/timezone');
 	$initdb->AddDefine('FRONTEND');
 	$initdb->AddLibrary('wsock32.lib');
 	$initdb->AddLibrary('ws2_32.lib');
 
 	my $pgbasebackup = AddSimpleFrontend('pg_basebackup', 1);
-	$pgbasebackup->AddFile('src\bin\pg_basebackup\pg_basebackup.c');
+	$pgbasebackup->AddFile('src/bin/pg_basebackup/pg_basebackup.c');
 	$pgbasebackup->AddLibrary('ws2_32.lib');
 
 	my $pgreceivexlog = AddSimpleFrontend('pg_basebackup', 1);
 	$pgreceivexlog->{name} = 'pg_receivexlog';
-	$pgreceivexlog->AddFile('src\bin\pg_basebackup\pg_receivexlog.c');
+	$pgreceivexlog->AddFile('src/bin/pg_basebackup/pg_receivexlog.c');
 	$pgreceivexlog->AddLibrary('ws2_32.lib');
 
 	my $pgconfig = AddSimpleFrontend('pg_config');
@@ -360,25 +361,25 @@
 	my $pgreset = AddSimpleFrontend('pg_resetxlog');
 
 	my $pgevent = $solution->AddProject('pgevent', 'dll', 'bin');
-	$pgevent->AddFiles('src\bin\pgevent', 'pgevent.c', 'pgmsgevent.rc');
-	$pgevent->AddResourceFile('src\bin\pgevent',
+	$pgevent->AddFiles('src/bin/pgevent', 'pgevent.c', 'pgmsgevent.rc');
+	$pgevent->AddResourceFile('src/bin/pgevent',
 		'Eventlog message formatter');
-	$pgevent->RemoveFile('src\bin\pgevent\win32ver.rc');
-	$pgevent->UseDef('src\bin\pgevent\pgevent.def');
+	$pgevent->RemoveFile('src/bin/pgevent/win32ver.rc');
+	$pgevent->UseDef('src/bin/pgevent/pgevent.def');
 	$pgevent->DisableLinkerWarnings('4104');
 
 	my $psql = AddSimpleFrontend('psql', 1);
-	$psql->AddIncludeDir('src\bin\pg_dump');
-	$psql->AddIncludeDir('src\backend');
-	$psql->AddFile('src\bin\psql\psqlscan.l');
+	$psql->AddIncludeDir('src/bin/pg_dump');
+	$psql->AddIncludeDir('src/backend');
+	$psql->AddFile('src/bin/psql/psqlscan.l');
 
 	my $pgdump = AddSimpleFrontend('pg_dump', 1);
-	$pgdump->AddIncludeDir('src\backend');
-	$pgdump->AddFile('src\bin\pg_dump\pg_dump.c');
-	$pgdump->AddFile('src\bin\pg_dump\common.c');
-	$pgdump->AddFile('src\bin\pg_dump\pg_dump_sort.c');
-	$pgdump->AddFile('src\bin\pg_dump\keywords.c');
-	$pgdump->AddFile('src\backend\parser\kwlookup.c');
+	$pgdump->AddIncludeDir('src/backend');
+	$pgdump->AddFile('src/bin/pg_dump/pg_dump.c');
+	$pgdump->AddFile('src/bin/pg_dump/common.c');
+	$pgdump->AddFile('src/bin/pg_dump/pg_dump_sort.c');
+	$pgdump->AddFile('src/bin/pg_dump/keywords.c');
+	$pgdump->AddFile('src/backend/parser/kwlookup.c');
 
 	my $pgdumpall = AddSimpleFrontend('pg_dump', 1);
 
@@ -386,39 +387,39 @@
 	# pg_dump and pg_restore.
 	# So remove their sources from the object, keeping the other setup that
 	# AddSimpleFrontend() has done.
-	my @nodumpall = grep { m/src\\bin\\pg_dump\\.*\.c$/ }
+	my @nodumpall = grep { m/src[\\\/]bin[\\\/]pg_dump[\\\/].*\.c$/ }
 	  keys %{ $pgdumpall->{files} };
 	delete @{ $pgdumpall->{files} }{@nodumpall};
 	$pgdumpall->{name} = 'pg_dumpall';
-	$pgdumpall->AddIncludeDir('src\backend');
-	$pgdumpall->AddFile('src\bin\pg_dump\pg_dumpall.c');
-	$pgdumpall->AddFile('src\bin\pg_dump\dumputils.c');
-	$pgdumpall->AddFile('src\bin\pg_dump\dumpmem.c');
-	$pgdumpall->AddFile('src\bin\pg_dump\keywords.c');
-	$pgdumpall->AddFile('src\backend\parser\kwlookup.c');
+	$pgdumpall->AddIncludeDir('src/backend');
+	$pgdumpall->AddFile('src/bin/pg_dump/pg_dumpall.c');
+	$pgdumpall->AddFile('src/bin/pg_dump/dumputils.c');
+	$pgdumpall->AddFile('src/bin/pg_dump/dumpmem.c');
+	$pgdumpall->AddFile('src/bin/pg_dump/keywords.c');
+	$pgdumpall->AddFile('src/backend/parser/kwlookup.c');
 
 	my $pgrestore = AddSimpleFrontend('pg_dump', 1);
 	$pgrestore->{name} = 'pg_restore';
-	$pgrestore->AddIncludeDir('src\backend');
-	$pgrestore->AddFile('src\bin\pg_dump\pg_restore.c');
-	$pgrestore->AddFile('src\bin\pg_dump\keywords.c');
-	$pgrestore->AddFile('src\backend\parser\kwlookup.c');
+	$pgrestore->AddIncludeDir('src/backend');
+	$pgrestore->AddFile('src/bin/pg_dump/pg_restore.c');
+	$pgrestore->AddFile('src/bin/pg_dump/keywords.c');
+	$pgrestore->AddFile('src/backend/parser/kwlookup.c');
 
 	my $zic = $solution->AddProject('zic', 'exe', 'utils');
-	$zic->AddFiles('src\timezone', 'zic.c', 'ialloc.c', 'scheck.c',
+	$zic->AddFiles('src/timezone', 'zic.c', 'ialloc.c', 'scheck.c',
 		'localtime.c');
 	$zic->AddReference($libpgport);
 
 	if ($solution->{options}->{xml})
 	{
 		$contrib_extraincludes->{'pgxml'} = [
-			$solution->{options}->{xml} . '\include',
-			$solution->{options}->{xslt} . '\include',
-			$solution->{options}->{iconv} . '\include' ];
+			$solution->{options}->{xml} . '/include',
+			$solution->{options}->{xslt} . '/include',
+			$solution->{options}->{iconv} . '/include' ];
 
 		$contrib_extralibs->{'pgxml'} = [
-			$solution->{options}->{xml} . '\lib\libxml2.lib',
-			$solution->{options}->{xslt} . '\lib\libxslt.lib' ];
+			$solution->{options}->{xml} . '/lib/libxml2.lib',
+			$solution->{options}->{xslt} . '/lib/libxslt.lib' ];
 	}
 	else
 	{
@@ -433,9 +434,9 @@
 	if ($solution->{options}->{uuid})
 	{
 		$contrib_extraincludes->{'uuid-ossp'} =
-		  [ $solution->{options}->{uuid} . '\include' ];
+		  [ $solution->{options}->{uuid} . '/include' ];
 		$contrib_extralibs->{'uuid-ossp'} =
-		  [ $solution->{options}->{uuid} . '\lib\uuid.lib' ];
+		  [ $solution->{options}->{uuid} . '/lib/uuid.lib' ];
 	}
 	else
 	{
@@ -445,7 +446,7 @@
 	# Pgcrypto makefile too complex to parse....
 	my $pgcrypto = $solution->AddProject('pgcrypto', 'dll', 'crypto');
 	$pgcrypto->AddFiles(
-		'contrib\pgcrypto', 'pgcrypto.c',
+		'contrib/pgcrypto', 'pgcrypto.c',
 		'px.c',             'px-hmac.c',
 		'px-crypt.c',       'crypt-gensalt.c',
 		'crypt-blowfish.c', 'crypt-des.c',
@@ -459,13 +460,13 @@
 		'pgp-pgsql.c');
 	if ($solution->{options}->{openssl})
 	{
-		$pgcrypto->AddFiles('contrib\pgcrypto', 'openssl.c',
+		$pgcrypto->AddFiles('contrib/pgcrypto', 'openssl.c',
 			'pgp-mpi-openssl.c');
 	}
 	else
 	{
 		$pgcrypto->AddFiles(
-			'contrib\pgcrypto',   'md5.c',
+			'contrib/pgcrypto',   'md5.c',
 			'sha1.c',             'sha2.c',
 			'internal.c',         'internal-sha2.c',
 			'blf.c',              'rijndael.c',
@@ -489,31 +490,31 @@
 	closedir($D);
 
 	$mf =
-	  Project::read_file('src\backend\utils\mb\conversion_procs\Makefile');
-	$mf =~ s{\\s*[\r\n]+}{}mg;
+	  Project::read_file('src/backend/utils/mb/conversion_procs/Makefile');
+	$mf =~ s{[\\\/]s*[\r\n]+}{}mg;
 	$mf =~ m{SUBDIRS\s*=\s*(.*)$}m
 	  || die 'Could not match in conversion makefile' . "\n";
 	foreach my $sub (split /\s+/, $1)
 	{
 		my $mf = Project::read_file(
-			'src\backend\utils\mb\conversion_procs\\' . $sub . '\Makefile');
+			'src/backend/utils/mb/conversion_procs/' . $sub . '/Makefile');
 		my $p = $solution->AddProject($sub, 'dll', 'conversion procs');
-		$p->AddFile('src\backend\utils\mb\conversion_procs\\' 
-			  . $sub . '\\' 
+		$p->AddFile('src/backend/utils/mb/conversion_procs/' 
+			  . $sub . '/' 
 			  . $sub
 			  . '.c');
 		if ($mf =~ m{^SRCS\s*\+=\s*(.*)$}m)
 		{
 			$p->AddFile(
-				'src\backend\utils\mb\conversion_procs\\' . $sub . '\\' . $1);
+				'src/backend/utils/mb/conversion_procs/' . $sub . '/' . $1);
 		}
 		$p->AddReference($postgres);
 	}
 
-	$mf = Project::read_file('src\bin\scripts\Makefile');
-	$mf =~ s{\\s*[\r\n]+}{}mg;
+	$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";
+	  || die 'Could not match in bin/scripts/Makefile' . "\n";
 	foreach my $prg (split /\s+/, $1)
 	{
 		my $proj = $solution->AddProject($prg, 'exe', 'bin');
@@ -525,41 +526,41 @@
 			$f =~ s/\.o$/\.c/;
 			if ($f eq 'keywords.c')
 			{
-				$proj->AddFile('src\bin\pg_dump\keywords.c');
+				$proj->AddFile('src/bin/pg_dump/keywords.c');
 			}
 			elsif ($f eq 'kwlookup.c')
 			{
-				$proj->AddFile('src\backend\parser\kwlookup.c');
+				$proj->AddFile('src/backend/parser/kwlookup.c');
 			}
 			elsif ($f eq 'dumputils.c')
 			{
-				$proj->AddFile('src\bin\pg_dump\dumputils.c');
+				$proj->AddFile('src/bin/pg_dump/dumputils.c');
 			}
 			elsif ($f =~ /print\.c$/)
 			{    # Also catches mbprint.c
-				$proj->AddFile('src\bin\psql\\' . $f);
+				$proj->AddFile('src/bin/psql/' . $f);
 			}
 			elsif ($f =~ /\.c$/)
 			{
-				$proj->AddFile('src\bin\scripts\\' . $f);
+				$proj->AddFile('src/bin/scripts/' . $f);
 			}
 		}
-		$proj->AddIncludeDir('src\interfaces\libpq');
-		$proj->AddIncludeDir('src\bin\pg_dump');
-		$proj->AddIncludeDir('src\bin\psql');
+		$proj->AddIncludeDir('src/interfaces/libpq');
+		$proj->AddIncludeDir('src/bin/pg_dump');
+		$proj->AddIncludeDir('src/bin/psql');
 		$proj->AddReference($libpq, $libpgport);
-		$proj->AddResourceFile('src\bin\scripts', 'PostgreSQL Utility');
+		$proj->AddResourceFile('src/bin/scripts', 'PostgreSQL Utility');
 	}
 
 	# Regression DLL and EXE
 	my $regress = $solution->AddProject('regress', 'dll', 'misc');
-	$regress->AddFile('src\test\regress\regress.c');
+	$regress->AddFile('src/test/regress/regress.c');
 	$regress->AddReference($postgres);
 
 	my $pgregress = $solution->AddProject('pg_regress', 'exe', 'misc');
-	$pgregress->AddFile('src\test\regress\pg_regress.c');
-	$pgregress->AddFile('src\test\regress\pg_regress_main.c');
-	$pgregress->AddIncludeDir('src\port');
+	$pgregress->AddFile('src/test/regress/pg_regress.c');
+	$pgregress->AddFile('src/test/regress/pg_regress_main.c');
+	$pgregress->AddIncludeDir('src/port');
 	$pgregress->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
 	$pgregress->AddReference($libpgport);
 
@@ -578,11 +579,11 @@
 	my $uselibpq = shift;
 
 	my $p = $solution->AddProject($n, 'exe', 'bin');
-	$p->AddDir('src\bin\\' . $n);
+	$p->AddDir('src/bin/' . $n);
 	$p->AddReference($libpgport);
 	if ($uselibpq)
 	{
-		$p->AddIncludeDir('src\interfaces\libpq');
+		$p->AddIncludeDir('src/interfaces/libpq');
 		$p->AddReference($libpq);
 	}
 	return $p;
@@ -592,12 +593,12 @@
 sub AddContrib
 {
 	my $n  = shift;
-	my $mf = Project::read_file('contrib\\' . $n . '\Makefile');
+	my $mf = Project::read_file('contrib/' . $n . '/Makefile');
 
 	if ($mf =~ /^MODULE_big\s*=\s*(.*)$/mg)
 	{
 		my $dn = $1;
-		$mf =~ s{\\\s*[\r\n]+}{}mg;
+		$mf =~ s{[\\\/]\s*[\r\n]+}{}mg;
 		my $proj = $solution->AddProject($dn, 'dll', 'contrib');
 		$mf =~ /^OBJS\s*=\s*(.*)$/gm
 		  || croak "Could not find objects in MODULE_big for $n\n";
@@ -606,7 +607,7 @@
 		{
 			my $o = $1;
 			$o =~ s/\.o$/.c/;
-			$proj->AddFile('contrib\\' . $n . '\\' . $o);
+			$proj->AddFile('contrib/' . $n . '/' . $o);
 		}
 		$proj->AddReference($postgres);
 		if ($mf =~ /^SUBDIRS\s*:?=\s*(.*)$/mg)
@@ -614,8 +615,8 @@
 			foreach my $d (split /\s+/, $1)
 			{
 				my $mf2 = Project::read_file(
-					'contrib\\' . $n . '\\' . $d . '\Makefile');
-				$mf2 =~ s{\\\s*[\r\n]+}{}mg;
+					'contrib/' . $n . '/' . $d . '/Makefile');
+				$mf2 =~ s{[\\\/]\s*[\r\n]+}{}mg;
 				$mf2 =~ /^SUBOBJS\s*=\s*(.*)$/gm
 				  || croak
 				  "Could not find objects in MODULE_big for $n, subdir $d\n";
@@ -624,7 +625,7 @@
 				{
 					my $o = $1;
 					$o =~ s/\.o$/.c/;
-					$proj->AddFile('contrib\\' . $n . '\\' . $d . '\\' . $o);
+					$proj->AddFile('contrib/' . $n . '/' . $d . '/' . $o);
 				}
 			}
 		}
@@ -635,7 +636,7 @@
 		foreach my $mod (split /\s+/, $1)
 		{
 			my $proj = $solution->AddProject($mod, 'dll', 'contrib');
-			$proj->AddFile('contrib\\' . $n . '\\' . $mod . '.c');
+			$proj->AddFile('contrib/' . $n . '/' . $mod . '.c');
 			$proj->AddReference($postgres);
 			AdjustContribProj($proj);
 		}
@@ -643,7 +644,7 @@
 	elsif ($mf =~ /^PROGRAM\s*=\s*(.*)$/mg)
 	{
 		my $proj = $solution->AddProject($1, 'exe', 'contrib');
-		$mf =~ s{\\\s*[\r\n]+}{}mg;
+		$mf =~ s{[\\\/]\s*[\r\n]+}{}mg;
 		$mf =~ /^OBJS\s*=\s*(.*)$/gm
 		  || croak "Could not find objects in PROGRAM for $n\n";
 		my $objs = $1;
@@ -651,7 +652,7 @@
 		{
 			my $o = $1;
 			$o =~ s/\.o$/.c/;
-			$proj->AddFile('contrib\\' . $n . '\\' . $o);
+			$proj->AddFile('contrib/' . $n . '/' . $o);
 		}
 		AdjustContribProj($proj);
 	}
@@ -723,7 +724,7 @@
 	}
 	if (grep { /^$n$/ } @contrib_uselibpq)
 	{
-		$proj->AddIncludeDir('src\interfaces\libpq');
+		$proj->AddIncludeDir('src/interfaces/libpq');
 		$proj->AddReference($libpq);
 	}
 	if (grep { /^$n$/ } @contrib_uselibpgport)
@@ -746,7 +747,7 @@
 	}
 	if ($contrib_extrasource->{$n})
 	{
-		$proj->AddFiles('contrib\\' . $n, @{ $contrib_extrasource->{$n} });
+		$proj->AddFiles('contrib/' . $n, @{ $contrib_extrasource->{$n} });
 	}
 }
 
diff --exclude psqlscan.c --exclude '*.vcxproj*' --exclude '*.rc' -ur orig/postgresql-9.2.4/src/tools/msvc/MSBuildProject.pm postgresql-9.2.4/src/tools/msvc/MSBuildProject.pm
--- orig/postgresql-9.2.4/src/tools/msvc/MSBuildProject.pm	2013-04-01 20:20:36.000000000 +0200
+++ postgresql-9.2.4/src/tools/msvc/MSBuildProject.pm	2013-08-17 18:59:06.056980900 +0200
@@ -125,8 +125,42 @@
 	my %uniquefiles;
 	foreach my $fileNameWithPath (sort keys %{ $self->{files} })
 	{
+		unless(-e $fileNameWithPath) {
+			my ($basename) = $fileNameWithPath =~ /^.*\/([^\/]+)$/;
+
+			my %map = (
+				"localtime.c" => "src/timezone",
+
+				"pqsignal.c" => "src/interfaces/libpq",
+
+				"dumputils.c" => "src/bin/pg_dump",
+				"keywords.c" => "src/bin/pg_dump",
+
+				"kwlookup.c" => "src/backend/parser",
+				"encnames.c" => "src/backend/utils/mb",
+				"wchar.c" => "src/backend/utils/mb",
+
+				"chklocale.c" => "src/port",
+				"inet_net_ntop.c" => "src/port",
+				"noblock.c" => "src/port",
+				"pgsleep.c" => "src/port",
+				"pgstrcasecmp.c" => "src/port",
+				"path.c" => "src/port",
+				"thread.c" => "src/port",
+				);
+
+			$fileNameWithPath = $map{$basename} . "/" . $basename if exists $map{$basename};
+
+			unless( -e $fileNameWithPath) {
+				system "find src -name '$basename' -ls";
+				system "find src -name '$basename' -printf '\"%f\" => \"%h\",\n'";
+				system "grep -r '$basename' src/tools/msvc";
+				Carp::confess "$self->{name}: Not existing file:$fileNameWithPath";
+			}
+		}
+
 		confess "Bad format filename '$fileNameWithPath'\n"
-		  unless ($fileNameWithPath =~ /^(.*)\\([^\\]+)\.[r]?[cyl]$/);
+		  unless ($fileNameWithPath =~ /^(.*)\/([^\/]+)\.[r]?[cyl]$/);
 		my $dir      = $1;
 		my $fileName = $2;
 		if ($fileNameWithPath =~ /\.y$/ or $fileNameWithPath =~ /\.l$/)
@@ -142,7 +176,7 @@
 
 			# File already exists, so fake a new name
 			my $obj = $dir;
-			$obj =~ s/\\/_/g;
+			$obj =~ s/[\/\\]/_/g;
 
 			print $f <<EOF;
     <ClCompile Include="$fileNameWithPath">
diff --exclude psqlscan.c --exclude '*.vcxproj*' --exclude '*.rc' -ur orig/postgresql-9.2.4/src/tools/msvc/Project.pm postgresql-9.2.4/src/tools/msvc/Project.pm
--- orig/postgresql-9.2.4/src/tools/msvc/Project.pm	2013-04-01 20:20:36.000000000 +0200
+++ postgresql-9.2.4/src/tools/msvc/Project.pm	2013-08-17 18:48:04.795930100 +0200
@@ -42,6 +42,10 @@
 {
 	my ($self, $filename) = @_;
 
+	die "AddFile with \\: $filename" if $filename =~ /\\/;
+	
+	#Carp::cluck "AddFile non existing file: $filename" unless -e $filename;
+
 	$self->{files}->{$filename} = 1;
 }
 
@@ -50,22 +54,26 @@
 	my $self = shift;
 	my $dir  = shift;
 
+	die "AddFile with \\: $dir" if $dir =~ /\\/;
+
 	while (my $f = shift)
 	{
-		$self->{files}->{ $dir . "\\" . $f } = 1;
+		$self->AddFile( $dir . "/" . $f );
 	}
 }
 
 sub ReplaceFile
 {
 	my ($self, $filename, $newname) = @_;
-	my $re = "\\\\$filename\$";
+	my $re = "/$filename\$";
+
+	die "filename with \\: $filename" if $filename =~ /\\/;
+	die "newname with \\: $newname" if $newname =~ /\\/;
 
 	foreach my $file (keys %{ $self->{files} })
 	{
-
 		# Match complete filename
-		if ($filename =~ /\\/)
+		if ($filename =~ /\//)
 		{
 			if ($file eq $filename)
 			{
@@ -77,7 +85,7 @@
 		elsif ($file =~ m/($re)/)
 		{
 			delete $self->{files}{$file};
-			$self->{files}{"$newname\\$filename"} = 1;
+			$self->{files}{"$newname/$filename"} = 1;
 			return;
 		}
 	}
@@ -87,6 +95,7 @@
 sub RemoveFile
 {
 	my ($self, $filename) = @_;
+	die "filename with \\: $filename" if $filename =~ /\\/;
 	my $orig = scalar keys %{ $self->{files} };
 	delete $self->{files}->{$filename};
 	if ($orig > scalar keys %{ $self->{files} })
@@ -99,13 +108,14 @@
 sub RelocateFiles
 {
 	my ($self, $targetdir, $proc) = @_;
+	die "targetdir with \\: $targetdir" if $targetdir =~ /\\/;
 	foreach my $f (keys %{ $self->{files} })
 	{
 		my $r = &$proc($f);
 		if ($r)
 		{
 			$self->RemoveFile($f);
-			$self->AddFile($targetdir . '\\' . basename($f));
+			$self->AddFile($targetdir . '/' . basename($f));
 		}
 	}
 }
@@ -118,7 +128,7 @@
 	{
 		push @{ $self->{references} }, $ref;
 		$self->AddLibrary(
-			"__CFGNAME__\\" . $ref->{name} . "\\" . $ref->{name} . ".lib");
+			"__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib");
 	}
 }
 
@@ -169,8 +179,8 @@
 	my ($self, $libname) = @_;
 
 	$self->{builddef} = 1;
-	$self->{def}      = ".\\__CFGNAME__\\$self->{name}\\$self->{name}.def";
-	$self->{implib}   = "__CFGNAME__\\$self->{name}\\$libname";
+	$self->{def}      = "./__CFGNAME__/$self->{name}/$self->{name}.def";
+	$self->{implib}   = "__CFGNAME__/$self->{name}/$libname";
 }
 
 sub UseDef
@@ -187,13 +197,13 @@
 
 	my $t = $/;
 	undef $/;
-	open($MF, "$reldir\\Makefile")
-	  || open($MF, "$reldir\\GNUMakefile")
-	  || croak "Could not open $reldir\\Makefile\n";
+	open($MF, "$reldir/Makefile")
+	  || open($MF, "$reldir/GNUMakefile")
+	  || croak "Could not open $reldir/Makefile\n";
 	my $mf = <$MF>;
 	close($MF);
 
-	$mf =~ s{\\\s*[\r\n]+}{}mg;
+	$mf =~ s{[\\\/]\s*[\r\n]+}{}mg;
 	if ($mf =~ m{^(?:SUB)?DIRS[^=]*=\s*(.*)$}mg)
 	{
 		foreach my $subdir (split /\s+/, $1)
@@ -202,9 +212,9 @@
 			  if $subdir eq "\$(top_builddir)/src/timezone"
 			;    #special case for non-standard include
 			next
-			  if $reldir . "\\" . $subdir eq "src\\backend\\port\\darwin";
+			  if $reldir . "/" . $subdir eq "src/backend/port/darwin";
 
-			$self->AddDir($reldir . "\\" . $subdir);
+			$self->AddDir($reldir . "/" . $subdir);
 		}
 	}
 	while ($mf =~ m{^(?:EXTRA_)?OBJS[^=]*=\s*(.*)$}m)
@@ -241,22 +251,22 @@
 		foreach my $f (split /\s+/, $s)
 		{
 			next if $f =~ /^\s*$/;
-			next if $f eq "\\";
+			next if $f eq "/";
 			next if $f =~ /\/SUBSYS.o$/;
 			$f =~ s/,$//
 			  ;    # Remove trailing comma that can show up from filter stuff
 			next unless $f =~ /.*\.o$/;
 			$f =~ s/\.o$/\.c/;
-			if ($f =~ /^\$\(top_builddir\)\/(.*)/)
+			if ($f =~ /^\$\(top_builddir\)\/(.*)$/ || $f =~ /^(src\/.*)$/ )
 			{
 				$f = $1;
-				$f =~ s/\//\\/g;
-				$self->{files}->{$f} = 1;
+				#$f =~ s/\//\\/g;
+				$self->AddFile($f);
 			}
 			else
 			{
-				$f =~ s/\//\\/g;
-				$self->{files}->{"$reldir\\$f"} = 1;
+				#$f =~ s/\//\\/g;
+				$self->AddFile("$reldir/$f");
 			}
 		}
 		$mf =~ s{OBJS[^=]*=\s*(.*)$}{}m;
@@ -281,7 +291,7 @@
 			}
 			elsif ($top eq "(backend_src)")
 			{
-				eval { $self->ReplaceFile($fn, "src\\backend\\$target") };
+				eval { $self->ReplaceFile($fn, "src/backend/$target") };
 			}
 			else
 			{
@@ -310,12 +320,12 @@
 	  localtime(time);
 	my $d = sprintf("%02d%03d", ($year - 100), $yday);
 
-	if (Solution::IsNewer("$dir\\win32ver.rc", 'src\port\win32ver.rc'))
+	if (Solution::IsNewer("$dir/win32ver.rc", 'src/port/win32ver.rc'))
 	{
 		print "Generating win32ver.rc for $dir\n";
-		open(I, 'src\port\win32ver.rc')
+		open(I, 'src/port/win32ver.rc')
 		  || confess "Could not open win32ver.rc";
-		open(O, ">$dir\\win32ver.rc")
+		open(O, ">$dir/win32ver.rc")
 		  || confess "Could not write win32ver.rc";
 		my $icostr = $ico ? "IDI_ICON ICON \"src/port/$ico.ico\"" : "";
 		while (<I>)
@@ -332,7 +342,7 @@
 	}
 	close(O);
 	close(I);
-	$self->AddFile("$dir\\win32ver.rc");
+	$self->AddFile("$dir/win32ver.rc");
 }
 
 sub DisableLinkerWarnings
@@ -372,7 +382,7 @@
 sub GetAdditionalLinkerDependencies
 {
 	my ($self, $cfgname, $seperator) = @_;
-	my $libcfg = (uc $cfgname eq "RELEASE") ? "MD" : "MDd";
+	my $libcfg = (uc $cfgname eq "RELEASE") ? "" : "MDd";
 	my $libs = '';
 	foreach my $lib (@{ $self->{libraries} })
 	{
diff --exclude psqlscan.c --exclude '*.vcxproj*' --exclude '*.rc' -ur orig/postgresql-9.2.4/src/tools/msvc/Solution.pm postgresql-9.2.4/src/tools/msvc/Solution.pm
--- orig/postgresql-9.2.4/src/tools/msvc/Solution.pm	2013-04-01 20:20:36.000000000 +0200
+++ postgresql-9.2.4/src/tools/msvc/Solution.pm	2013-08-17 18:58:10.430857900 +0200
@@ -65,7 +65,7 @@
 
 	# Examine CL help output to determine if we are in 32 or 64-bit mode.
 	$self->{platform} = 'Win32';
-	open(P, "cl /? 2>&1 |") || die "cl command not found";
+	open(P, "cl /\\? 2>&1 |") || die "cl command not found";
 	while (<P>)
 	{
 		if (/^\/favor:<.+AMD64/)
@@ -83,15 +83,15 @@
 sub IsNewer
 {
 	my ($newfile, $oldfile) = @_;
-	if (   $oldfile ne 'src\tools\msvc\config.pl'
-		&& $oldfile ne 'src\tools\msvc\config_default.pl')
+	if (   $oldfile ne 'src/tools/msvc/config.pl'
+		&& $oldfile ne 'src/tools/msvc/config_default.pl')
 	{
 		return 1
-		  if (-f 'src\tools\msvc\config.pl')
-		  && IsNewer($newfile, 'src\tools\msvc\config.pl');
+		  if (-f 'src/tools/msvc/config.pl')
+		  && IsNewer($newfile, 'src/tools/msvc/config.pl');
 		return 1
-		  if (-f 'src\tools\msvc\config_default.pl')
-		  && IsNewer($newfile, 'src\tools\msvc\config_default.pl');
+		  if (-f 'src/tools/msvc/config_default.pl')
+		  && IsNewer($newfile, 'src/tools/msvc/config_default.pl');
 	}
 	return 1 if (!(-e $newfile));
 	my @nstat = stat($newfile);
@@ -140,20 +140,20 @@
 	  if ($self->{strver} eq '' || $self->{numver} eq '');
 
 	if (IsNewer(
-			"src\\include\\pg_config_os.h", "src\\include\\port\\win32.h"))
+			"src/include/pg_config_os.h", "src/include/port/win32.h"))
 	{
 		print "Copying pg_config_os.h...\n";
-		copyFile("src\\include\\port\\win32.h",
-			"src\\include\\pg_config_os.h");
+		copyFile("src/include/port/win32.h",
+			"src/include/pg_config_os.h");
 	}
 
 	if (IsNewer(
-			"src\\include\\pg_config.h", "src\\include\\pg_config.h.win32"))
+			"src/include/pg_config.h", "src/include/pg_config.h.win32"))
 	{
 		print "Generating pg_config.h...\n";
-		open(I, "src\\include\\pg_config.h.win32")
+		open(I, "src/include/pg_config.h.win32")
 		  || confess "Could not open pg_config.h.win32\n";
-		open(O, ">src\\include\\pg_config.h")
+		open(O, ">src/include/pg_config.h")
 		  || confess "Could not write to pg_config.h\n";
 		while (<I>)
 		{
@@ -242,99 +242,99 @@
 	}
 
 	$self->GenerateDefFile(
-		"src\\interfaces\\libpq\\libpqdll.def",
-		"src\\interfaces\\libpq\\exports.txt",
+		"src/interfaces/libpq/libpqdll.def",
+		"src/interfaces/libpq/exports.txt",
 		"LIBPQ");
 	$self->GenerateDefFile(
-		"src\\interfaces\\ecpg\\ecpglib\\ecpglib.def",
-		"src\\interfaces\\ecpg\\ecpglib\\exports.txt",
+		"src/interfaces/ecpg/ecpglib/ecpglib.def",
+		"src/interfaces/ecpg/ecpglib/exports.txt",
 		"LIBECPG");
 	$self->GenerateDefFile(
-		"src\\interfaces\\ecpg\\compatlib\\compatlib.def",
-		"src\\interfaces\\ecpg\\compatlib\\exports.txt",
+		"src/interfaces/ecpg/compatlib/compatlib.def",
+		"src/interfaces/ecpg/compatlib/exports.txt",
 		"LIBECPG_COMPAT");
 	$self->GenerateDefFile(
-		"src\\interfaces\\ecpg\\pgtypeslib\\pgtypeslib.def",
-		"src\\interfaces\\ecpg\\pgtypeslib\\exports.txt",
+		"src/interfaces/ecpg/pgtypeslib/pgtypeslib.def",
+		"src/interfaces/ecpg/pgtypeslib/exports.txt",
 		"LIBPGTYPES");
 
 	if (IsNewer(
-			'src\backend\utils\fmgrtab.c', 'src\include\catalog\pg_proc.h'))
+			'src/backend/utils/fmgrtab.c', 'src/include/catalog/pg_proc.h'))
 	{
 		print "Generating fmgrtab.c and fmgroids.h...\n";
-		chdir('src\backend\utils');
+		chdir('src/backend/utils');
 		system(
 "perl -I ../catalog Gen_fmgrtab.pl ../../../src/include/catalog/pg_proc.h");
 		chdir('..\..\..');
 	}
-	if (IsNewer('src\include\utils\fmgroids.h', 'src\backend\utils\fmgroids.h'))
+	if (IsNewer('src/include/utils/fmgroids.h', 'src/backend/utils/fmgroids.h'))
 	{
-		copyFile('src\backend\utils\fmgroids.h',
-			'src\include\utils\fmgroids.h');
+		copyFile('src/backend/utils/fmgroids.h',
+			'src/include/utils/fmgroids.h');
 	}
 
-	if (IsNewer('src\include\utils\probes.h', 'src\backend\utils\probes.d'))
+	if (IsNewer('src/include/utils/probes.h', 'src/backend/utils/probes.d'))
 	{
 		print "Generating probes.h...\n";
 		system(
-'psed -f src\backend\utils\Gen_dummy_probes.sed src\backend\utils\probes.d > src\include\utils\probes.h'
+'psed -f src/backend/utils/Gen_dummy_probes.sed src/backend/utils/probes.d > src/include/utils/probes.h'
 		);
 	}
 
 	if ($self->{options}->{python}
 		&& IsNewer(
-			'src\pl\plpython\spiexceptions.h',
-			'src\include\backend\errcodes.txt'))
+			'src/pl/plpython/spiexceptions.h',
+			'src/include/backend/errcodes.txt'))
 	{
 		print "Generating spiexceptions.h...\n";
 		system(
-'perl src\pl\plpython\generate-spiexceptions.pl src\backend\utils\errcodes.txt > src\pl\plpython\spiexceptions.h'
+'perl src/pl/plpython/generate-spiexceptions.pl src/backend/utils/errcodes.txt > src/pl/plpython/spiexceptions.h'
 		);
 	}
 
 	if (IsNewer(
-			'src\include\utils\errcodes.h',
-			'src\backend\utils\errcodes.txt'))
+			'src/include/utils/errcodes.h',
+			'src/backend/utils/errcodes.txt'))
 	{
 		print "Generating errcodes.h...\n";
 		system(
-'perl src\backend\utils\generate-errcodes.pl src\backend\utils\errcodes.txt > src\backend\utils\errcodes.h'
+'perl src/backend/utils/generate-errcodes.pl src/backend/utils/errcodes.txt > src/backend/utils/errcodes.h'
 		);
-		copyFile('src\backend\utils\errcodes.h',
-			'src\include\utils\errcodes.h');
+		copyFile('src/backend/utils/errcodes.h',
+			'src/include/utils/errcodes.h');
 	}
 
 	if (IsNewer(
-			'src\pl\plpgsql\src\plerrcodes.h',
-			'src\backend\utils\errcodes.txt'))
+			'src/pl/plpgsql/src/plerrcodes.h',
+			'src/backend/utils/errcodes.txt'))
 	{
 		print "Generating plerrcodes.h...\n";
 		system(
-'perl src\pl\plpgsql\src\generate-plerrcodes.pl src\backend\utils\errcodes.txt > src\pl\plpgsql\src\plerrcodes.h'
+'perl src/pl/plpgsql/src/generate-plerrcodes.pl src/backend/utils/errcodes.txt > src/pl/plpgsql/src/plerrcodes.h'
 		);
 	}
 
 	if (IsNewer(
-			'src\backend\utils\sort\qsort_tuple.c',
-			'src\backend\utils\sort\gen_qsort_tuple.pl'))
+			'src/backend/utils/sort/qsort_tuple.c',
+			'src/backend/utils/sort/gen_qsort_tuple.pl'))
 	{
 		print "Generating qsort_tuple.c...\n";
 		system(
-'perl src\backend\utils\sort\gen_qsort_tuple.pl > src\backend\utils\sort\qsort_tuple.c'
+'perl src/backend/utils/sort/gen_qsort_tuple.pl > src/backend/utils/sort/qsort_tuple.c'
 		);
 	}
 
 	if (IsNewer(
-			'src\interfaces\libpq\libpq.rc',
-			'src\interfaces\libpq\libpq.rc.in'))
+			'src/interfaces/libpq/libpq.rc',
+			'src/interfaces/libpq/libpq.rc.in'))
 	{
 		print "Generating libpq.rc...\n";
 		my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
 		  localtime(time);
 		my $d = ($year - 100) . "$yday";
-		open(I, '<', 'src\interfaces\libpq\libpq.rc.in')
+		open(I, '<', 'src/interfaces/libpq/libpq.rc.in')
 		  || confess "Could not open libpq.rc.in";
-		open(O, '>', 'src\interfaces\libpq\libpq.rc')
+		open(O, '>', 'src/interfaces/libpq/libpq.rc')
 		  || confess "Could not open libpq.rc";
 		while (<I>)
 		{
@@ -345,30 +345,30 @@
 		close(O);
 	}
 
-	if (IsNewer('src\bin\psql\sql_help.h', 'src\bin\psql\create_help.pl'))
+	if (IsNewer('src/bin/psql/sql_help.h', 'src/bin/psql/create_help.pl'))
 	{
 		print "Generating sql_help.h...\n";
-		chdir('src\bin\psql');
+		chdir('src/bin/psql');
 		system("perl create_help.pl ../../../doc/src/sgml/ref sql_help");
-		chdir('..\..\..');
+		chdir('../../..');
 	}
 
 	if (IsNewer(
-			'src\interfaces\ecpg\preproc\preproc.y',
-			'src\backend\parser\gram.y'))
+			'src/interfaces/ecpg/preproc/preproc.y',
+			'src/backend/parser/gram.y'))
 	{
 		print "Generating preproc.y...\n";
-		chdir('src\interfaces\ecpg\preproc');
-		system('perl parse.pl < ..\..\..\backend\parser\gram.y > preproc.y');
-		chdir('..\..\..\..');
+		chdir('src/interfaces/ecpg/preproc');
+		system('perl parse.pl < ../../../backend/parser/gram.y > preproc.y');
+		chdir('../../../..');
 	}
 
 	if (IsNewer(
-			'src\interfaces\ecpg\include\ecpg_config.h',
-			'src\interfaces\ecpg\include\ecpg_config.h.in'))
+			'src/interfaces/ecpg/include/ecpg_config.h',
+			'src/interfaces/ecpg/include/ecpg_config.h.in'))
 	{
 		print "Generating ecpg_config.h...\n";
-		open(O, '>', 'src\interfaces\ecpg\include\ecpg_config.h')
+		open(O, '>', 'src/interfaces/ecpg/include/ecpg_config.h')
 		  || confess "Could not open ecpg_config.h";
 		print O <<EOF;
 #if (_MSC_VER > 1200)
@@ -381,10 +381,10 @@
 		close(O);
 	}
 
-	unless (-f "src\\port\\pg_config_paths.h")
+	unless (-f "src/port/pg_config_paths.h")
 	{
 		print "Generating pg_config_paths.h...\n";
-		open(O, '>', 'src\port\pg_config_paths.h')
+		open(O, '>', 'src/port/pg_config_paths.h')
 		  || confess "Could not open pg_config_paths.h";
 		print O <<EOF;
 #define PGBINDIR "/bin"
@@ -403,8 +403,9 @@
 		close(O);
 	}
 
-	my $mf = Project::read_file('src\backend\catalog\Makefile');
-	$mf =~ s{\\s*[\r\n]+}{}mg;
+if(0) {
+	my $mf = Project::read_file('src/backend/catalog/Makefile');
+	$mf =~ s{/s*[\r\n]+}{}mg;
 	$mf =~ /^POSTGRES_BKI_SRCS\s*:?=[^,]+,(.*)\)$/gm
 	  || croak "Could not find POSTGRES_BKI_SRCS in Makefile\n";
 	my @allbki = split /\s+/, $1;
@@ -416,18 +417,19 @@
 				"src/include/catalog/$bki"))
 		{
 			print "Generating postgres.bki and schemapg.h...\n";
-			chdir('src\backend\catalog');
+			chdir('src/backend/catalog');
 			my $bki_srcs = join(' ../../../src/include/catalog/', @allbki);
 			system(
 "perl genbki.pl -I../../../src/include/catalog --set-version=$self->{majorver} $bki_srcs"
 			);
-			chdir('..\..\..');
+			chdir('../../..');
 			copyFile(
-				'src\backend\catalog\schemapg.h',
-				'src\include\catalog\schemapg.h');
+				'src/backend/catalog/schemapg.h',
+				'src/include/catalog/schemapg.h');
 			last;
 		}
 	}
+}
 
 	open(O, ">doc/src/sgml/version.sgml")
 	  || croak "Could not write to version.sgml\n";
@@ -470,45 +472,45 @@
 	$proj->AddDir($initialdir) if ($initialdir);
 	if ($self->{options}->{zlib})
 	{
-		$proj->AddIncludeDir($self->{options}->{zlib} . '\include');
-		$proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib');
+		$proj->AddIncludeDir($self->{options}->{zlib} . '/include');
+		$proj->AddLibrary($self->{options}->{zlib} . '/lib/zdll.lib');
 	}
 	if ($self->{options}->{openssl})
 	{
-		$proj->AddIncludeDir($self->{options}->{openssl} . '\include');
+		$proj->AddIncludeDir($self->{options}->{openssl} . '/include');
 		$proj->AddLibrary(
-			$self->{options}->{openssl} . '\lib\VC\ssleay32.lib', 1);
+			$self->{options}->{openssl} . '/lib/ssleay32.lib', 1);
 		$proj->AddLibrary(
-			$self->{options}->{openssl} . '\lib\VC\libeay32.lib', 1);
+			$self->{options}->{openssl} . '/lib/libeay32.lib', 1);
 	}
 	if ($self->{options}->{nls})
 	{
-		$proj->AddIncludeDir($self->{options}->{nls} . '\include');
-		$proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib');
+		$proj->AddIncludeDir($self->{options}->{nls} . '/include');
+		$proj->AddLibrary($self->{options}->{nls} . '/lib/libintl.lib');
 	}
 	if ($self->{options}->{krb5})
 	{
-		$proj->AddIncludeDir($self->{options}->{krb5} . '\inc\krb5');
-		$proj->AddLibrary($self->{options}->{krb5} . '\lib\i386\krb5_32.lib');
+		$proj->AddIncludeDir($self->{options}->{krb5} . '/inc/krb5');
+		$proj->AddLibrary($self->{options}->{krb5} . '/lib/i386/krb5_32.lib');
 		$proj->AddLibrary(
-			$self->{options}->{krb5} . '\lib\i386\comerr32.lib');
+			$self->{options}->{krb5} . '/lib/i386/comerr32.lib');
 		$proj->AddLibrary(
-			$self->{options}->{krb5} . '\lib\i386\gssapi32.lib');
+			$self->{options}->{krb5} . '/lib/i386/gssapi32.lib');
 	}
 	if ($self->{options}->{iconv})
 	{
-		$proj->AddIncludeDir($self->{options}->{iconv} . '\include');
-		$proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib');
+		$proj->AddIncludeDir($self->{options}->{iconv} . '/include');
+		$proj->AddLibrary($self->{options}->{iconv} . '/lib/iconv.lib');
 	}
 	if ($self->{options}->{xml})
 	{
-		$proj->AddIncludeDir($self->{options}->{xml} . '\include');
-		$proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib');
+		$proj->AddIncludeDir($self->{options}->{xml} . '/include');
+		$proj->AddLibrary($self->{options}->{xml} . '/lib/libxml2.lib');
 	}
 	if ($self->{options}->{xslt})
 	{
-		$proj->AddIncludeDir($self->{options}->{xslt} . '\include');
-		$proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib');
+		$proj->AddIncludeDir($self->{options}->{xslt} . '/include');
+		$proj->AddLibrary($self->{options}->{xslt} . '/lib/libxslt.lib');
 	}
 	return $proj;
 }
diff --exclude psqlscan.c --exclude '*.vcxproj*' --exclude '*.rc' -ur orig/postgresql-9.2.4/src/tools/msvc/VSObjectFactory.pm postgresql-9.2.4/src/tools/msvc/VSObjectFactory.pm
--- orig/postgresql-9.2.4/src/tools/msvc/VSObjectFactory.pm	2013-04-01 20:20:36.000000000 +0200
+++ postgresql-9.2.4/src/tools/msvc/VSObjectFactory.pm	2013-08-17 19:00:24.083583100 +0200
@@ -91,13 +91,12 @@
 
 # Determine version of nmake command, to set proper version of visual studio
 # we use nmake as it has existed for a long time and still exists in current visual studio versions
-		open(P, "nmake /? 2>&1 |")
-		  || croak
-"Unable to determine Visual Studio version: The nmake command wasn't found.";
+		open P, "nmake /\\? 2>&1 |"; # || croak
+#"Unable to determine Visual Studio version: The nmake command wasn't found.";
 		while (<P>)
 		{
 			chomp;
-			if (/(\d+)\.(\d+)\.\d+(\.\d+)?$/)
+			if (/(\d+)\.(\d+)\.\d+(\.\d+)?\s*$/)
 			{
 				return _GetVisualStudioVersion($1, $2);
 			}
