diff --git a/Mac/Compat/nfullpath.c b/Mac/Compat/nfullpath.c
index 94ccc4c..ca027c8 100644
--- a/Mac/Compat/nfullpath.c
+++ b/Mac/Compat/nfullpath.c
@@ -1,6 +1,5 @@
 /* GET FULL PATHNAME OF A FILE.
 ** Original by Guido, modified by Jack to handle FSSpecs 
-** (and only tested under MetroWerks, so far)
 */
 
 #include <string.h>
@@ -12,7 +11,6 @@
 /* Mac file system parameters */
 #define MAXPATH 256	/* Max path name length+1 */
 #define SEP ':'		/* Separator in path names */
-#define ROOTID 2	/* DirID of a volume's root directory */
 
 /* Macro to find out whether we can do HFS-only calls: */
 #define FSFCBLen (* (short *) 0x3f6)
@@ -29,45 +27,49 @@
 		WDPBRec w;
 		VolumeParam v;
 	} pb;
-	static char cwd[2*MAXPATH];
+	char cwd[2*MAXPATH];
 	unsigned char namebuf[MAXPATH];
 	short err;
 	int dir;
 	long dirid;
-	char *next= cwd + sizeof cwd - 1;
+	char *next = cwd + sizeof cwd - 1;
 	int len;
-	
+	int need_sep = 1;
 	
 	if (!hfsrunning())
 		return -1;
 	
-	dir  = fsp->vRefNum;
+	dir = fsp->vRefNum;
 	dirid = fsp->parID;
 	/* Stuff the filename into the buffer */
 	len = fsp->name[0];
 	*next = '\0';
-	next -= len+1;
-	memcpy(next, &fsp->name[1], len);
+	next -= len;
+	memcpy(next, fsp->name+1, len);
 	
-	for (;;) {
-		pb.d.ioNamePtr= namebuf;
-		pb.d.ioVRefNum= dir;
-		pb.d.ioFDirIndex= -1;
-		pb.d.ioDrDirID= dirid;
+	while (dirid != fsRtParID) {
+		pb.d.ioNamePtr = namebuf;
+		pb.d.ioVRefNum = dir;
+		pb.d.ioFDirIndex = -1;
+		pb.d.ioDrDirID = dirid;
 		err= PBGetCatInfo((CInfoPBPtr)&pb.d, 0);
-		if (err != noErr) {
+		if (err != noErr)
 			return err;
-		}
-		*--next= SEP;
-		len= namebuf[0];
+		*--next = SEP;
+		len = namebuf[0];
 		if ( len + strlen(next) >= MAXPATH )
 			return -1;
 		next -= len;
 		memcpy(next, (char *)namebuf+1, len);
-		if (pb.d.ioDrDirID == ROOTID)
-			break;
-		dirid= pb.d.ioDrParID;
+		dirid = pb.d.ioDrParID;
+		need_sep = 0;
 	}
+	
 	strcpy(retbuf, next);
+	if (need_sep) {
+		next = strchr(retbuf, '\0');
+		*next++ = SEP;
+		*next++ = '\0';
+	}
 	return 0;
 }
