-@@ -223,8 +226,8 @@ static int rsync_xal_get(const char *fna
- continue;
- #endif
-
-- if (am_root < 0 && name_len == XSTAT_LEN + 1
-- && name[RPRE_LEN] == '%' && strcmp(name, XSTAT_ATTR) == 0)
-+ if (name_len > RPRE_LEN && name[RPRE_LEN] == '%'
-+ && HAS_PREFIX(name, RSYNC_PREFIX))
- continue;
-
- datum_len = name_len; /* Pass extra size to get_xattr_data() */
-@@ -636,8 +639,8 @@ void receive_xattr(struct file_struct *f
- continue;
+@@ -238,7 +244,9 @@ static int rsync_xal_get(const char *fname, item_list *xalp)
+ || (am_root < 0
+ && (strcmp(name+RPRE_LEN+1, XSTAT_SUFFIX) == 0
+ || strcmp(name+RPRE_LEN+1, XACC_ACL_SUFFIX) == 0
+- || strcmp(name+RPRE_LEN+1, XDEF_ACL_SUFFIX) == 0)))
++ || strcmp(name+RPRE_LEN+1, XDEF_ACL_SUFFIX) == 0
++ || strcmp(name+RPRE_LEN+1, MD4_SUFFIX) == 0
++ || strcmp(name+RPRE_LEN+1, MD5_SUFFIX) == 0)))
+ continue;