diff --git a/src/sbbs3/wrappers.c b/src/sbbs3/wrappers.c
index e696060901d10762e03a954f42a264e0387f2302..7bdbce855c77af2e8cb76d030e3b44f3afa873a4 100644
--- a/src/sbbs3/wrappers.c
+++ b/src/sbbs3/wrappers.c
@@ -296,9 +296,12 @@ char* _fullpath(char* absPath, const char* relPath, size_t maxLength)
 	}
 
     getcwd(curdir, PATH_MAX);
-    chdir(relPath);
-    getcwd(absPath, maxLength);
-    chdir(curdir);
+    if(chdir(relPath)!=0) /* error, invalid dir */
+		strcpy(absPath,relPath);
+	else {
+		getcwd(absPath, maxLength);
+		chdir(curdir);
+	}
 	free(curdir);
 
     return absPath;