diff --git a/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonSet.java b/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonSet.java
index 4f287f9266..f302ec8e02 100644
--- a/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonSet.java
+++ b/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonSet.java
@@ -13,6 +13,10 @@ public final class MtgJsonSet {
     public String releaseDate;
     public int totalSetSize;
 
+    public String block;
+
+    public String parentCode;
+
     @Override
     public String toString() {
         return code + " - " + name;
diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
index 8c2103193c..a0023ca8f4 100644
--- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
+++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
@@ -942,6 +942,50 @@ public class VerifyCardDataTest {
             }
         }
 
+        // CHECK: parent and block info
+        for (ExpansionSet set : sets) {
+            if (true) continue; // TODO: comments it and run to find a problems
+            MtgJsonSet jsonSet = MtgJsonService.sets().getOrDefault(set.getCode().toUpperCase(Locale.ENGLISH), null);
+            if (jsonSet == null) {
+                continue;
+            }
+
+            // parent set
+            MtgJsonSet jsonParentSet = jsonSet.parentCode == null ? null : MtgJsonService.sets().getOrDefault(jsonSet.parentCode, null);
+            ExpansionSet mageParentSet = set.getParentSet();
+            String jsonParentCode = jsonParentSet == null ? "null" : jsonParentSet.code;
+            String mageParentCode = mageParentSet == null ? "null" : mageParentSet.getCode();
+
+            String needMageClass = "";
+            if (!jsonParentCode.equals("null")) {
+                needMageClass = sets
+                        .stream()
+                        .filter(exp -> exp.getCode().equals(jsonParentCode))
+                        .map(exp -> " - " + exp.getClass().getSimpleName() + ".getInstance()")
+                        .findFirst()
+                        .orElse("- error, can't find class");
+            }
+
+            if (!Objects.equals(jsonParentCode, mageParentCode)) {
+                errorsList.add(String.format("Error: set with wrong parentSet settings: %s (parentSet = %s, but must be %s%s)",
+                        set.getCode() + " - " + set.getName(),
+                        mageParentCode,
+                        jsonParentCode,
+                        needMageClass
+                ));
+            }
+
+            // block info
+            if (!Objects.equals(set.getBlockName(), jsonSet.block)) {
+                if (true) continue; // TODO: comments it and run to find a problems
+                errorsList.add(String.format("Error: set with wrong blockName settings: %s (blockName = %s, but must be %s)",
+                        set.getCode() + " - " + set.getName(),
+                        set.getBlockName(),
+                        jsonSet.block
+                ));
+            }
+        }
+
         // TODO: add test to check num cards for rarity (rarityStats > 0 and numRarity > 0)
         printMessages(warningsList);
         printMessages(errorsList);
diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java
index 9de582dd2f..58091373de 100644
--- a/Mage/src/main/java/mage/cards/ExpansionSet.java
+++ b/Mage/src/main/java/mage/cards/ExpansionSet.java
@@ -104,13 +104,13 @@ public abstract class ExpansionSet implements Serializable {
     protected String name;
     protected String code;
     protected Date releaseDate;
-    protected ExpansionSet parentSet;
+    protected ExpansionSet parentSet; // used to search additional lands and reprints for booster
     protected SetType setType;
 
     // TODO: 03.10.2018, hasBasicLands can be removed someday -- it's uses to optimize lands search in deck generation and lands adding (search all available lands from sets)
     protected boolean hasBasicLands = true;
 
-    protected String blockName;
+    protected String blockName; // used to group sets in some GUI dialogs like choose set dialog
     protected boolean hasBoosters = false;
     protected int numBoosterSpecial;
 
@@ -539,6 +539,7 @@ public abstract class ExpansionSet implements Serializable {
             List<String> needSets = new ArrayList<>();
             needSets.add(this.code);
             if (this.parentSet != null) {
+                // TODO: is it ok to put all parent's cards to booster instead lands only?
                 needSets.add(this.parentSet.code);
             }
             List<CardInfo> cardInfos = CardRepository.instance.findCards(new CardCriteria()
diff --git a/Mage/src/main/java/mage/cards/repository/CardScanner.java b/Mage/src/main/java/mage/cards/repository/CardScanner.java
index b9e3b62118..40ec2ab472 100644
--- a/Mage/src/main/java/mage/cards/repository/CardScanner.java
+++ b/Mage/src/main/java/mage/cards/repository/CardScanner.java
@@ -6,6 +6,7 @@ import org.apache.log4j.Logger;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author North
@@ -38,7 +39,7 @@ public final class CardScanner {
                 setsToAdd.add(new ExpansionInfo(set));
             } else if (!expansionInfo.name.equals(set.getName())
                     || !expansionInfo.code.equals(set.getCode())
-                    || (expansionInfo.blockName == null ? set.getBlockName() != null : !expansionInfo.blockName.equals(set.getBlockName()))
+                    || !(Objects.equals(expansionInfo.blockName, set.getBlockName()))
                     || !expansionInfo.releaseDate.equals(set.getReleaseDate())
                     || expansionInfo.type != set.getSetType()
                     || expansionInfo.boosters != set.hasBoosters()