Index: openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl,v
diff -u -r1.24.2.7 -r1.24.2.8
--- openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl	21 Sep 2022 12:22:02 -0000	1.24.2.7
+++ openacs-4/packages/oacs-dav/tcl/oacs-dav-procs.tcl	24 Sep 2022 19:06:13 -0000	1.24.2.8
@@ -136,16 +136,21 @@
         }
         copy -
         move {
+            set dest_parent_id [oacs_dav::conn dest_parent_id]
+            if {$dest_parent_id eq ""} {
+                ns_return 409 text/plain {Non-existant destination}
+                return filter_ok
+            }
             set authorized_p [expr [permission::permission_p \
                                         -object_id $item_id \
                                         -party_id $user_id \
                                         -privilege "read"] \
                                 && [permission::permission_p \
-                                        -object_id [oacs_dav::conn dest_parent_id ] \
+                                        -object_id $dest_parent_id \
                                         -party_id $user_id \
                                         -privilege "create"]\
                                 || [permission::permission_p \
-                                        -object_id [oacs_dav::conn dest_parent_id ] \
+                                        -object_id $dest_parent_id \
                                         -party_id $user_id \
                                         -privilege "write"]]
         }
@@ -299,6 +304,7 @@
     set urlv [oacs_dav::conn -set urlv [split [string trimright $uri "/"] "/"]]
 
     set destination [ns_urldecode [ns_set iget [ns_conn headers] Destination]]
+    ns_log warning DESTINATION=$destination
 
     regsub {https?://[^/]+/} $destination {/} dest
 
@@ -1054,7 +1060,7 @@
     set target_uri [oacs_dav::conn oacs_destination]
     set copy_item_id [oacs_dav::conn item_id]
     set overwrite [oacs_dav::conn overwrite]
-    set turlv [split $target_uri "/"]
+    set turlv [split [string trimright $target_uri "/"] "/"]
     set new_name [lindex $turlv end]
     set new_parent_folder_id [oacs_dav::conn dest_parent_id]
     if {$new_parent_folder_id eq ""} {
@@ -1116,7 +1122,7 @@
     set target_uri [oacs_dav::conn oacs_destination]
     set cur_parent_folder_id [oacs_dav::conn folder_id]
     set new_parent_folder_id [oacs_dav::conn dest_parent_id]
-    set turlv [split $target_uri "/"]
+    set turlv [split [string trimright $target_uri "/"] "/"]
     set new_name [lindex $turlv end]
     set overwrite [oacs_dav::conn overwrite]
     if {$new_parent_folder_id eq ""} {