diff --git a/TASMAN-core/pom.xml b/TASMAN-core/pom.xml
index bc18744a27195d0e85b7d28d65af2eae9c9ae5a6..04bee63fc3be504d488409c1d0ca2eaad1c05521 100644
--- a/TASMAN-core/pom.xml
+++ b/TASMAN-core/pom.xml
@@ -3,7 +3,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>it.inaf.ia2.tap</groupId>
     <artifactId>tasman-core</artifactId>
-    <version>1.3.0</version>
+    <version>1.3.1</version>
     <packaging>jar</packaging>
     <name>tasman-core</name>
     <properties>
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Table.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Table.java
index fb8388d11807b5c4d343757fdf813050e508c509..ed0d8c409000b4f9b4685ec5f7ab361322976dc7 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Table.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/Table.java
@@ -71,6 +71,23 @@ public class Table extends ChildEntity<Schema> implements EntitiesContainer<Colu
         return null;
     }
 
+    /**
+     * Special behavior for retro-compatibility with oldest TAP_SCHEMA versions
+     * in which the indexed column was represented using 1 and 0 instead boolean
+     * values.
+     */
+    private void fixIndexedMetadataValues() {
+        boolean useIntForBool = tapSchema.getTapSchemaModel()
+                .getTable(TapSchema.COLUMNS_TABLE)
+                .get(Column.INDEXED_KEY).getJavaType() == Integer.class;
+        if (useIntForBool) {
+            for (Map<String, Object> cm : columnsMetadata.values()) {
+                boolean indexed = (boolean) cm.get(Column.INDEXED_KEY);
+                cm.put(Column.INDEXED_KEY, indexed ? 1 : 0);
+            }
+        }
+    }
+
     protected Table(TapSchema tapSchema, Schema schema, String tableSimpleName) throws SQLException {
         super(tapSchema, tapSchema.getTableModel(TapSchema.TABLES_TABLE), schema.getTableMetadata(tableSimpleName));
 
@@ -82,6 +99,7 @@ public class Table extends ChildEntity<Schema> implements EntitiesContainer<Colu
         DBBroker broker = tapSchema.getDBBroker(schema.getName());
         tableTableModel = getTableTableModel();
         columnsMetadata = broker.getAllColumnsMetadata(schema.getName(), tableSimpleName, tableTableModel, tapSchema.getDataTypeMode());
+        fixIndexedMetadataValues();
 
         for (Map.Entry<String, Map<String, Object>> entry : columnsMetadata.entrySet()) {
             // Adding table names to columns metadata
diff --git a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/TapSchemaLoader.java b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/TapSchemaLoader.java
index 2f75ae85db229fc7c4456afd7e8db690d5fa4183..4020c0f2055cb47537e36f91fc53d2c2e6ec42c7 100644
--- a/TASMAN-core/src/main/java/it/inaf/ia2/tsm/TapSchemaLoader.java
+++ b/TASMAN-core/src/main/java/it/inaf/ia2/tsm/TapSchemaLoader.java
@@ -162,11 +162,22 @@ public class TapSchemaLoader {
         Schema parentSchema = column.getParent().getParent();
         if (parentSchema.getName().equals(tapSchema.getName())) {
             return equalsOneOf(key, Column.STD_KEY, Column.PRINCIPAL_KEY);
-        } else if (parentSchema.getName().equals(tapSchema.getIvoaSchemaModel().getName())) {
-            return equalsOneOf(key, Column.STD_KEY, Column.PRINCIPAL_KEY,
-                    Column.UCD_KEY, Column.UNIT_KEY, Column.UTYPE_KEY, Column.DATATYPE_KEY);
+        } else {
+            SchemaModel ivoaSchemaModel = tapSchema.getIvoaSchemaModel();
+            if (ivoaSchemaModel != null
+                    && parentSchema.getName().equals(ivoaSchemaModel.getName())) {
+                return equalsOneOf(key, Column.STD_KEY, Column.PRINCIPAL_KEY,
+                        Column.UCD_KEY, Column.UNIT_KEY, Column.UTYPE_KEY, Column.DATATYPE_KEY);
+            }
+            return false;
         }
-        return false;
+    }
+
+    private Object getCompatibleIntOrBoolValue(String key, boolean value) {
+        if (tapSchema.getTapSchemaModel().getTable(COLUMNS_TABLE).get(key).getJavaType() == Integer.class) {
+            return value ? 1 : 0;
+        }
+        return value;
     }
 
     private Object getCorrectValue(Column column, String key) {
@@ -187,9 +198,9 @@ public class TapSchemaLoader {
         ColumnModel columnModel = schemaModel.getTable(column.getParent().getName()).get(column.getName());
         switch (key) {
             case Column.STD_KEY:
-                return columnModel.isStandard();
+                return getCompatibleIntOrBoolValue(Column.STD_KEY, columnModel.isStandard());
             case Column.PRINCIPAL_KEY:
-                return columnModel.isPrincipal();
+                return getCompatibleIntOrBoolValue(Column.PRINCIPAL_KEY, columnModel.isPrincipal());
             case Column.UCD_KEY:
                 return columnModel.getUcd();
             case Column.UNIT_KEY:
diff --git a/TASMAN-webapp/pom.xml b/TASMAN-webapp/pom.xml
index 74f71028f149665f3052c1a594d641e34a23db99..8e5655763549f0734b4bef532636605c500fb563 100644
--- a/TASMAN-webapp/pom.xml
+++ b/TASMAN-webapp/pom.xml
@@ -4,7 +4,7 @@
 
     <groupId>it.inaf.ia2.tap</groupId>
     <artifactId>tasman-webapp</artifactId>
-    <version>1.3.0</version>
+    <version>1.3.1</version>
     <packaging>war</packaging>
 
     <name>tasman-webapp</name>
@@ -107,7 +107,7 @@
                 <dependency>
                     <groupId>it.inaf.ia2.tap</groupId>
                     <artifactId>tasman-core</artifactId>
-                    <version>1.2.0</version>
+                    <version>1.3.1</version>
                     <exclusions>
                         <!-- exclusion due to tomcat-jdbc dependency conflicting with Jetty -->
                         <exclusion>
@@ -124,7 +124,7 @@
         <dependency>
             <groupId>it.inaf.ia2.tap</groupId>
             <artifactId>tasman-core</artifactId>
-            <version>1.2.0</version>
+            <version>1.3.1</version>
         </dependency>
         <dependency>
             <groupId>ari.ucidy</groupId>