>> If you do "System.Directory *.mod!" and after that without "!" than you
> get details on both outputs. "!" toggles the details for output without "!". 

The issue is that System.Directory modifies a global variable ‘pat’,
which may contain some “leftover” characters from a previous call to
System.Directory. The following code makes sure it is always “clean”.

In System.Directory change this code:

WHILE ch > "!" DO pat[i] := ch; INC(i); Texts.Read(R, ch) END;
  pat[i] := 0X;
  IF ch = "!" THEN pat[i+1] := "!" END ; (*directory option*)

to the following:

 WHILE ch > "!" DO pat[i] := ch; INC(i); Texts.Read(R, ch) END;
 pat[i] := 0X; INC(i);
 IF ch = "!" THEN pat[i] := "!"; INC(i) END ; (*directory option*)
 WHILE i < LEN(pat) DO pat[i] := 0X; INC(i) END ;

-AP