diff --git a/PC/VS7.1/_ssl.mak b/PC/VS7.1/_ssl.mak
index 3420ef1..8476a63 100644
--- a/PC/VS7.1/_ssl.mak
+++ b/PC/VS7.1/_ssl.mak
@@ -12,25 +12,25 @@
 SSL_LIB_DIR=$(SSL_DIR)/out32
 !ENDIF
 
-INCLUDES=-I ../Include -I ../PC -I $(SSL_DIR)/inc32
+INCLUDES=-I ../../Include -I ../../PC -I $(SSL_DIR)/inc32
 
 SSL_LIBS=gdi32.lib wsock32.lib user32.lib advapi32.lib /LIBPATH:$(SSL_LIB_DIR) libeay32.lib ssleay32.lib
-SSL_SOURCE=../Modules/_ssl.c 
+SSL_SOURCE=../../Modules/_ssl.c 
 
 HASH_LIBS=gdi32.lib user32.lib advapi32.lib /libpath:$(SSL_LIB_DIR) libeay32.lib
-HASH_SOURCE=../Modules/_hashopenssl.c 
+HASH_SOURCE=../../Modules/_hashopenssl.c 
 
 all: _ssl$(SUFFIX) _hashlib$(SUFFIX)
 
 # Split compile/link into two steps to better support VSExtComp
-_ssl$(SUFFIX): $(SSL_SOURCE) $(SSL_LIB_DIR)/libeay32.lib $(SSL_LIB_DIR)/ssleay32.lib ../PC/*.h ../Include/*.h
+_ssl$(SUFFIX): $(SSL_SOURCE) $(SSL_LIB_DIR)/libeay32.lib $(SSL_LIB_DIR)/ssleay32.lib ../../PC/*.h ../../Include/*.h
 	@if not exist "$(TEMP)/_ssl/." mkdir "$(TEMP)/_ssl"
 	cl /nologo /c $(SSL_SOURCE) $(CFLAGS) /Fo$(TEMP)\_ssl\$*.obj $(INCLUDES)
 	link /nologo @<<
              /dll /out:_ssl$(SUFFIX) $(TEMP)\_ssl\$*.obj $(SSL_LIBS) $(EXTRA_LIBS)
 <<
 
-_hashlib$(SUFFIX): $(HASH_SOURCE) $(SSL_LIB_DIR)/libeay32.lib ../PC/*.h ../Include/*.h
+_hashlib$(SUFFIX): $(HASH_SOURCE) $(SSL_LIB_DIR)/libeay32.lib ../../PC/*.h ../../Include/*.h
     @if not exist "$(TEMP)/_hashlib/." mkdir "$(TEMP)/_hashlib"
     cl /nologo /c $(HASH_SOURCE) $(CFLAGS) $(EXTRA_CFLAGS) /Fo$(TEMP)\_hashlib\$*.obj $(INCLUDES) 
     link /nologo @<<
diff --git a/PC/VS7.1/make_buildinfo.c b/PC/VS7.1/make_buildinfo.c
index 4cebf45..27580bb 100644
--- a/PC/VS7.1/make_buildinfo.c
+++ b/PC/VS7.1/make_buildinfo.c
@@ -5,9 +5,9 @@
 
 /* This file creates the getbuildinfo.o object, by first
    invoking subwcrev.exe (if found), and then invoking cl.exe.
-   As a side effect, it might generate PCBuild\getbuildinfo2.c
+   As a side effect, it might generate PC\VS7.1\getbuildinfo2.c
    also. If this isn't a subversion checkout, or subwcrev isn't
-   found, it compiles ..\\Modules\\getbuildinfo.c instead.
+   found, it compiles ..\\..\\Modules\\getbuildinfo.c instead.
 
    Currently, subwcrev.exe is found from the registry entries
    of TortoiseSVN.
@@ -44,7 +44,7 @@
 	if (_stat(command+1, &st) < 0)
 		/* subwcrev.exe not part of the release */
 		return 0;
-	strcat(command, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c");
+	strcat(command, "\" ..\\.. ..\\..\\Modules\\getbuildinfo.c getbuildinfo2.c");
 	puts(command); fflush(stdout);
 	if (system(command) < 0)
 		return 0;
@@ -80,8 +80,8 @@
 	if ((do_unlink = make_buildinfo2()))
 		strcat(command, "getbuildinfo2.c -DSUBWCREV ");
 	else
-		strcat(command, "..\\Modules\\getbuildinfo.c");
-	strcat(command, " -Fogetbuildinfo.o -I..\\Include -I..\\PC");
+		strcat(command, "..\\..\\Modules\\getbuildinfo.c");
+	strcat(command, " -Fogetbuildinfo.o -I..\\..\\Include -I..\\..\\PC");
 	puts(command); fflush(stdout);
 	result = system(command);
 	if (do_unlink)
@@ -89,4 +89,4 @@
 	if (result < 0)
 		return EXIT_FAILURE;
 	return 0;
-}
\ No newline at end of file
+}
