--- cvarutil.inc.ori	Thu Apr 07 06:10:54 2011
+++ cvarutil.inc	Fri Oct 21 11:04:44 2011
@@ -1415,7 +1415,12 @@ begin
       end else { pointer is nil }
         VariantTypeMismatch(vType, varString);
     else { array or something like that }
-      VariantTypeMismatch(vType, varString);
+      if (vType and varArray = varArray) and Assigned(vArray) then begin
+        SetLength(Result, vArray^.Bounds[0].ElementCount * vArray^.ElementSize);
+        Move(vArray^.Data^, Result[1], length(Result)*sizeof(AnsiChar));
+      end
+      else
+        VariantTypeMismatch(vType, varString);
     end;
 
   {$IFDEF DEBUG_VARUTILS} if __DEBUG_VARUTILS then begin
