diff --git a/rtl/morphos/sysutils.pp b/rtl/morphos/sysutils.pp
index 05f6485b37..abde3bd9b3 100644
--- a/rtl/morphos/sysutils.pp
+++ b/rtl/morphos/sysutils.pp
@@ -302,11 +302,8 @@ var
   validDate: boolean;
 begin
   result:=-1; { We emulate Linux/Unix behaviour, and return -1 on errors. }
-
   tmpStr:=PathConv(path)+#0;
-  Rslt.Name := tmpStr;
-  { "128" is Windows "NORMALFILE" attribute. Some buggy code depend on this... :( (KB) }
-  Rslt.Attr := Attr or 128;
+
   { $1e = faHidden or faSysFile or faVolumeID or faDirectory }
   Rslt.ExcludeAttr := (not Attr) and ($1e);
   Rslt.FindHandle  := 0;
@@ -318,10 +315,15 @@ begin
   Rslt.FindHandle := longint(Anchor);
 
   with Anchor^.ap_Info do begin
+    Rslt.Name := StrPas(fib_FileName);
+
     Rslt.Size := fib_Size;
     Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
     if not validDate then exit;
 
+    { "128" is Windows "NORMALFILE" attribute. Some buggy code depend on this... :( (KB) }
+    Rslt.Attr := 128;
+
     if fib_DirEntryType > 0 then Rslt.Attr:=Rslt.Attr or faDirectory;
     if ((fib_Protection and FIBF_READ) <> 0) and
        ((fib_Protection and FIBF_WRITE) = 0) then Rslt.Attr:=Rslt.Attr or faReadOnly;
@@ -343,10 +345,13 @@ begin
   if MatchNext(Anchor) <> 0 then exit;
 
   with Anchor^.ap_Info do begin
+    Rslt.Name := StrPas(fib_FileName);
     Rslt.Size := fib_Size;
     Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
     if not validDate then exit;
 
+    { "128" is Windows "NORMALFILE" attribute. Some buggy code depend on this... :( (KB) }
+    Rslt.Attr := 128;
     if fib_DirEntryType > 0 then Rslt.Attr:=Rslt.Attr or faDirectory;
     if ((fib_Protection and FIBF_READ) <> 0) and
        ((fib_Protection and FIBF_WRITE) = 0) then Rslt.Attr:=Rslt.Attr or faReadOnly;