Index: oup/current/Code/OniDataClass.pas
===================================================================
--- oup/current/Code/OniDataClass.pas	(revision 51)
+++ oup/current/Code/OniDataClass.pas	(revision 56)
@@ -412,19 +412,22 @@
   end;
   SetLength(Result, list.Count);
-  fields := TStringList.Create;
-  if sort in [stIDAsc, stNameAsc, stExtAsc] then
-    for i := 0 to list.Count - 1 do
-    begin
-      getfields;
-      Result[i] := id + '-' + name + '.' + extension;
-    end
-  else
-    for i := list.Count - 1 downto 0 do
-    begin
-      getfields;
-      Result[list.Count - i - 1] := id + '-' + name + '.' + extension;
-    end;
+  if Length(Result) > 0 then
+  begin
+    fields := TStringList.Create;
+    if sort in [stIDAsc, stNameAsc, stExtAsc] then
+      for i := 0 to list.Count - 1 do
+      begin
+        getfields;
+        Result[i] := id + '-' + name + '.' + extension;
+      end
+    else
+      for i := list.Count - 1 downto 0 do
+      begin
+        getfields;
+        Result[list.Count - i - 1] := id + '-' + name + '.' + extension;
+      end;
+    fields.Free;
+  end;
   list.Free;
-  fields.Free;
 end;
 
