diff --git a/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java
index 86cbd37e73ede4f5dc09901a6eba3398e6e1695b..7b5f2e9c79549468f27bf9e08853cd8e7ea2b488 100644
--- a/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java
+++ b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java
@@ -19,6 +19,10 @@ package ch.systemsx.cisd.dbmigration.migration;
 import java.io.File;
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Scanner;
 
 import org.apache.commons.io.FileUtils;
 import org.testng.AssertJUnit;
@@ -26,13 +30,12 @@ import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeTest;
 
-import cz.startnet.utils.pgdiff.PgDiff;
-import cz.startnet.utils.pgdiff.PgDiffArguments;
-
 import ch.systemsx.cisd.common.logging.LogInitializer;
 import ch.systemsx.cisd.dbmigration.DBMigrationEngine;
 import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext;
 import ch.systemsx.cisd.dbmigration.postgresql.DumpPreparator;
+import cz.startnet.utils.pgdiff.PgDiff;
+import cz.startnet.utils.pgdiff.PgDiffArguments;
 
 /**
  * Test cases for database migration.
@@ -172,13 +175,84 @@ public abstract class SqlMigrationTestAbstract
         arguments.setNewDumpFile(expectedSchemaFile.getAbsolutePath());
         arguments.setIgnoreFunctionWhitespace(true);
         arguments.setIgnoreStartWith(true);
+        arguments.setOutputIgnoredStatements(true);
         PgDiff.createDiff(new PrintWriter(writer), arguments);
 
-        String delta = writer.toString();
-        delta = delta == null ? "" : delta;
+        String diff = writer.toString();
+        if (diff == null)
+        {
+            diff = "";
+        }
+        String delta = diff.substring(0, diff.indexOf("/* Original")).trim();
 
         AssertJUnit.assertEquals("The migrated schema is not identical to the scratch one. "
                 + "Consider attaching following script to the migration file.", "", delta);
+
+        List<String> originalDb = new ArrayList<String>();
+        List<String> newDb = new ArrayList<String>();
+
+        Scanner scanner = new Scanner(diff);
+        List<String> current = originalDb;
+        while (scanner.hasNextLine())
+        {
+            String line = scanner.nextLine();
+            if (line.contains("New database ignored statements"))
+            {
+                current = newDb;
+            }
+            if (line.length() == 0 ||
+                    line.startsWith("/*") ||
+                    line.startsWith("*/") ||
+                    line.startsWith("GRANT") ||
+                    line.startsWith("REVOKE"))
+            {
+                continue;
+            } else
+            {
+                current.add(line);
+            }
+        }
+        scanner.close();
+
+        Iterator<String> origIter = originalDb.iterator();
+        Iterator<String> newIter = newDb.iterator();
+
+        while (true)
+        {
+            if (!origIter.hasNext() && !newIter.hasNext())
+            {
+                break;
+            }
+            if (!origIter.hasNext())
+            {
+                String additional = contentOf(newIter);
+                AssertJUnit.fail("Only in from-scratch schema: " + additional);
+            }
+
+            if (!newIter.hasNext())
+            {
+                String additional = contentOf(origIter);
+                AssertJUnit.fail("Only in migrated schema: " + additional);
+            }
+            String origValue = origIter.next();
+            String newValue = newIter.next();
+            if (!origValue.equals(newValue))
+            {
+                System.out.println(diff);
+                AssertJUnit.fail("There's a difference between the migrated schema and the from-scratch schema\nmigrated: " + origValue
+                        + "\nfrom-scratch: " + newValue);
+            }
+        }
+    }
+
+    private String contentOf(Iterator<String> newIter)
+    {
+        String s = "";
+        while (newIter.hasNext())
+        {
+            s += newIter.next() + "\n";
+        }
+        return s;
     }
 
 }
diff --git a/screening/source/sql/imaging/postgresql/migration/migration-022-023.sql b/screening/source/sql/imaging/postgresql/migration/migration-022-023.sql
index fff0c987a5e58e5252e70e075c390608ebfa824f..55b736e8bf097c8f7c681a5808b93d6d06a16a30 100644
--- a/screening/source/sql/imaging/postgresql/migration/migration-022-023.sql
+++ b/screening/source/sql/imaging/postgresql/migration/migration-022-023.sql
@@ -1,5 +1,6 @@
 -- Migration from 022 to 023
 
+DROP DOMAIN PUBLIC.NAME;
 CREATE DOMAIN LONG_NAME AS TEXT;
 
 ALTER TABLE IMAGE_DATA_SETS