diff --git "a/D:\\Components\\jvclg\\jvcl\\run\\JvMemoryDataset.pas" "b/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset.pas"
index 0e7df31..35c96bc 100644
--- "a/D:\\Components\\jvclg\\jvcl\\run\\JvMemoryDataset.pas"
+++ "b/C:\\Users\\User\\Documents\\RAD Studio\\Projects\\JMD AutoIncrement Test\\JvMemoryDataset.pas"	
@@ -130,7 +130,6 @@ type
     FIndexList: TList;
     FCaseInsensitiveSort: Boolean;
     FDescendingSort: Boolean;
-    FAutoIncField: TField;
     FSrcAutoIncField: TField;
     FDataSet: TDataSet;
     FDataSetClosed: Boolean;
@@ -1981,8 +1980,6 @@ begin
     begin
       Fields[I].Tag := Ord(Fields[I].ReadOnly);
       Fields[I].ReadOnly := False;
-      if Fields[I].DataType = ftAutoInc then
-        FAutoIncField := Fields[I];
     end;
 end;
 
@@ -2051,10 +2048,8 @@ begin
         MovedCount := MaxInt;
       end;
 
-      FinalAutoInc := 0;
-      FAutoIncField := nil;
-      // FixReadOnlyFields also sets FAutoIncField if there is any
       FixReadOnlyFields(False);
+      FinalAutoInc := 0;
       // find first source autoinc field
       FSrcAutoIncField := nil;
       if Mode = lmCopy then
@@ -2070,10 +2065,10 @@ begin
           Append;
           AssignRecord(Source, Self, True);
           // assign AutoInc value manually (make user keep largest if source isn't sorted by autoinc field)
-          if (FAutoIncField <> nil) and (FSrcAutoIncField <> nil) then
+          if FSrcAutoIncField <> nil then
           begin
             FinalAutoInc := Max(FinalAutoInc, FSrcAutoIncField.AsInteger);
-            FAutoInc := FSrcAutoIncField.AsInteger; //SetAutoIncFields will write this value to all fields with ftAutoInc
+            FAutoInc := FSrcAutoIncField.AsInteger;
           end;
           if (Mode = lmCopy) and (FApplyMode <> amNone) then
             FieldByName(FStatusName).AsInteger := Integer(rsOriginal);
@@ -2093,7 +2088,6 @@ begin
         FixReadOnlyFields(True);
         if Mode = lmCopy then
           FAutoInc := FinalAutoInc + 1;
-        FAutoIncField := nil;
         FSrcAutoIncField := nil;
         First;
       end;
@@ -2523,7 +2517,6 @@ begin
       StatusField := FieldByName(FStatusName);
 
     FinalAutoInc := 0;
-    FAutoIncField := nil;
     // find first source autoinc field
     FSrcAutoIncField := nil;
     for I := 0 to FDataSet.FieldCount - 1 do
@@ -2532,8 +2525,6 @@ begin
         FSrcAutoIncField := FDataSet.Fields[I];
         Break;
       end;
-    if FSrcAutoIncField <> nil then
-      FAutoIncField := FindField(FSrcAutoIncField.FieldName);
 
     FDataSet.First;
     while not FDataSet.EOF do
@@ -2559,10 +2550,10 @@ begin
         end;
       end;
       // assign AutoInc value manually (make user keep largest if source isn't sorted by autoinc field)
-      if (FAutoIncField <> nil) and (FSrcAutoIncField <> nil) then
+      if FSrcAutoIncField <> nil then
       begin
         FinalAutoInc := Max(FinalAutoInc, FSrcAutoIncField.AsInteger);
-        FAutoInc := FSrcAutoIncField.AsInteger; //SetAutoIncFields will write this value to all fields with ftAutoInc
+        FAutoInc := FSrcAutoIncField.AsInteger;
       end;
       if FApplyMode <> amNone then
         StatusField.AsInteger := Integer(rsOriginal);
