diff -up samba-3.0.26a/source/smbd/nttrans.c.orig samba-3.0.26a/source/smbd/nttrans.c --- samba-3.0.26a/source/smbd/nttrans.c.orig 2007-11-09 14:17:44.000000000 -0500 +++ samba-3.0.26a/source/smbd/nttrans.c 2007-11-09 14:21:30.000000000 -0500 @@ -688,8 +688,9 @@ int reply_ntcreate_and_X(connection_stru && (create_disposition != FILE_CREATE) && (share_access & FILE_SHARE_DELETE) && (access_mask & DELETE_ACCESS)) { - if ((dos_mode(conn, fname, &sbuf) & FILE_ATTRIBUTE_READONLY) || + if (((dos_mode(conn, fname, &sbuf) & FILE_ATTRIBUTE_READONLY) + && !lp_delete_readonly(SNUM(conn))) || !can_delete_file_in_directory(conn, fname)) { restore_case_semantics(conn, file_attributes); END_PROFILE(SMBntcreateX);