diff --git a/pd/src/pd.tk b/pd/src/pd.tk
index a115189cc104524a362e15619bc27bb374887e7c..7f15f13d54216149896d351e1a5153be4cbee20d 100644
--- a/pd/src/pd.tk
+++ b/pd/src/pd.tk
@@ -9388,8 +9388,15 @@ proc pdtk_check_unique {unique filenames} {
 	#puts stderr "pdtk_check_unique $unique $filenames"
 	global appname
 	if { $unique == 0 } {
-		#puts stderr "send pd-l2ork pdtk_open_files_via_unique $filenames"
-		set outcome [catch {send pd-l2ork pdtk_open_files_via_unique $filenames}]
+		foreach file $filenames {
+			cd [file dirname $file]
+			set dir [pwd]
+			set name [file tail $file]
+			#puts stderr "********DIR:$dir FILE:$name COMBINED:[file join $dir $name]"
+			lappend final_filenames [file join $dir $name]
+		}
+		#puts stderr "send pd-l2ork pdtk_open_files_via_unique $final_filenames"
+		set outcome [catch {send pd-l2ork pdtk_open_files_via_unique \{$final_filenames\}}]
 		#puts stderr "outcome = $outcome"
 		if { $outcome == 0 } {
 			menu_really_quit
diff --git a/pd/src/s_main.c b/pd/src/s_main.c
index 6692d346a1fa73c090e8fc6c30d9eaa690abad52..5b3700f84f6b18d01938dec6922c386970236388 100644
--- a/pd/src/s_main.c
+++ b/pd/src/s_main.c
@@ -325,7 +325,7 @@ int sys_main(int argc, char **argv)
             return(1);
         }
     }
-    sys_vgui("pdtk_check_unique %d %s\n", sys_unique,
+    sys_vgui("pdtk_check_unique %d {%s}\n", sys_unique,
         (filenames ? filenames : "0"));
     if (sys_externalschedlib)
         return (sys_run_scheduler(sys_externalschedlibname,