diff --git a/bds/source/java/ch/systemsx/cisd/bds/DataSet.java b/bds/source/java/ch/systemsx/cisd/bds/DataSet.java
index c8562ce9e6e927a6833c632df3a8a0547566b9f8..a85cf46ffb19f1a891d3e67aa8d074ee44726442 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/DataSet.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/DataSet.java
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
+import ch.systemsx.cisd.bds.Utilities.Boolean;
 import ch.systemsx.cisd.bds.exception.DataStructureException;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.common.collections.CollectionIO;
@@ -67,7 +68,7 @@ public final class DataSet implements IStorable
      * Specifies whether the data set has been measured from a sample or whether it has been derived
      * by means of some calculation from another data set.
      */
-    private final boolean isMeasured;
+    private final Boolean isMeasured;
 
     /** The list of parent codes. Never <code>null</code> but could be empty. */
     private final List<String> parentCodes;
@@ -85,7 +86,7 @@ public final class DataSet implements IStorable
      */
     public DataSet(final String code, final String observableType)
     {
-        this(code, observableType, true, null, null, null);
+        this(code, observableType, Boolean.TRUE, null, null, null);
     }
 
     /**
@@ -99,7 +100,7 @@ public final class DataSet implements IStorable
      * @param parentCodesOrNull list of parent data sets. Must be <code>null</code> or empty for
      *            measured data (or not empty for derived data).
      */
-    public DataSet(final String code, final String observableType, final boolean isMeasured,
+    public DataSet(final String code, final String observableType, final Boolean isMeasured,
             final Date productionTimestampOrNull, final String producerCodeOrNull,
             final List<String> parentCodesOrNull)
     {
@@ -107,7 +108,8 @@ public final class DataSet implements IStorable
         this.isMeasured = isMeasured;
         assert StringUtils.isEmpty(observableType) == false : "Unspecified observable type.";
         this.observableTypeCode = observableType;
-        if (isMeasured == true && parentCodesOrNull != null && parentCodesOrNull.size() > 0)
+        if (isMeasured.toBoolean() == true && parentCodesOrNull != null
+                && parentCodesOrNull.size() > 0)
         {
             throw new IllegalArgumentException(String.format(NO_PARENT_FOR_MEASURED_DATA));
         }
@@ -142,7 +144,7 @@ public final class DataSet implements IStorable
         return observableTypeCode;
     }
 
-    public final boolean isMeasured()
+    public final Boolean isMeasured()
     {
         return isMeasured;
     }
@@ -168,7 +170,7 @@ public final class DataSet implements IStorable
         final IDirectory idFolder = Utilities.getSubDirectory(directory, FOLDER);
         final String code = Utilities.getTrimmedString(idFolder, CODE);
         final String observableTypeCode = Utilities.getTrimmedString(idFolder, OBSERVABLE_TYPE);
-        final boolean isMeasured = Utilities.getBoolean(idFolder, IS_MEASURED);
+        final Boolean isMeasured = Utilities.getBoolean(idFolder, IS_MEASURED);
         final Date productionTimestampOrNull =
                 Utilities.getDateOrNull(idFolder, PRODUCTION_TIMESTAMP);
         final String producerCode = Utilities.getTrimmedString(idFolder, PRODUCER_CODE);
@@ -204,7 +206,7 @@ public final class DataSet implements IStorable
                 productionTimestamp == null ? StringUtils.EMPTY_STRING : Constants.DATE_FORMAT
                         .get().format(productionTimestamp));
         folder.addKeyValuePair(PRODUCER_CODE, StringUtils.emptyIfNull(producerCode));
-        folder.addKeyValuePair(IS_MEASURED, Boolean.toString(isMeasured).toUpperCase());
+        folder.addKeyValuePair(IS_MEASURED, isMeasured.toString());
         folder.addKeyValuePair(OBSERVABLE_TYPE, observableTypeCode);
         folder.addKeyValuePair(IS_COMPLETE, isComplete.toString());
         final String value;
diff --git a/bds/source/java/ch/systemsx/cisd/bds/Utilities.java b/bds/source/java/ch/systemsx/cisd/bds/Utilities.java
index 80281d396a6add49f25cf5962cff71a2716ea771..51e8822f8020b89a218fa74fa6d7c71c5974f5ac 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/Utilities.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/Utilities.java
@@ -142,14 +142,14 @@ public class Utilities
      * Return the string content of a file from the given <var>directory</var> as boolean (<code>TRUE</code>
      * or <code>FALSE</code>).
      */
-    public static boolean getBoolean(final IDirectory directory, final String name)
+    public static Boolean getBoolean(final IDirectory directory, final String name)
             throws DataStructureException
     {
         // No assertion here as 'getString(IDirectory, String)' already does it.
         final String value = getTrimmedString(directory, name);
         try
         {
-            return Boolean.valueOf(value).toBoolean();
+            return Boolean.valueOf(value);
         } catch (final IllegalArgumentException ex)
         {
             throw new DataStructureException("Value of '" + name
@@ -251,5 +251,11 @@ public class Utilities
         {
             return this == TRUE ? true : false;
         }
+
+        /** Converts given <code>boolean</code> to this enumeration item. */
+        public final static Boolean fromBoolean(final boolean bool)
+        {
+            return bool ? TRUE : FALSE;
+        }
     }
 }
\ No newline at end of file
diff --git a/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java b/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java
index a67bc7ea20959e62418795cf281ce80d0203fd86..2033bec987eaac04a3c2872876acc8f23e77bd94 100644
--- a/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java
+++ b/bds/source/java/ch/systemsx/cisd/bds/check/AbstractChecker.java
@@ -229,7 +229,7 @@ public abstract class AbstractChecker
     {
         try
         {
-            return Utilities.getBoolean(dataDir, name);
+            return Utilities.getBoolean(dataDir, name).toBoolean();
         } catch (final Exception e)
         {
             problemReport.error(e.getMessage());
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java
index d246a3cfeb4b3ace8f797c1da7d3bde32528c7f5..8fcf66346687376c3c522dc543b75d884110c4a0 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataSetFileSystemTestCase.java
@@ -27,6 +27,7 @@ import java.util.List;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.bds.Utilities.Boolean;
 import ch.systemsx.cisd.bds.storage.IDirectory;
 import ch.systemsx.cisd.bds.storage.filesystem.NodeFactory;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
@@ -48,7 +49,7 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
         final DataSet dataSet = new DataSet(dataSetCode, observableType);
         dataSet.saveTo(directory);
         final IDirectory folder = Utilities.getSubDirectory(directory, DataSet.FOLDER);
-        checkBasicDataSet(folder, dataSetCode, observableType, true);
+        checkBasicDataSet(folder, dataSetCode, observableType, Boolean.TRUE);
         assertEquals(0, Utilities.getStringList(folder, DataSet.PARENT_CODES).size());
         assertEquals(StringUtils.EMPTY_STRING, Utilities.getTrimmedString(folder,
                 DataSet.PRODUCER_CODE));
@@ -58,7 +59,7 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
     }
 
     private final static void checkBasicDataSet(final IDirectory directory,
-            final String dataSetCode, final String observableType, final boolean isMeasured)
+            final String dataSetCode, final String observableType, final Boolean isMeasured)
     {
         assertEquals(dataSetCode, Utilities.getTrimmedString(directory, DataSet.CODE));
         assertEquals("HCS_IMAGE", Utilities.getTrimmedString(directory, DataSet.OBSERVABLE_TYPE));
@@ -74,11 +75,11 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
         final String producerCode = "producerCode";
         final Date productionTimestamp = new Date(0L);
         final DataSet dataSet =
-                new DataSet(dataSetCode, observableType, true, productionTimestamp, producerCode,
-                        null);
+                new DataSet(dataSetCode, observableType, Boolean.TRUE, productionTimestamp,
+                        producerCode, null);
         dataSet.saveTo(directory);
         final IDirectory folder = Utilities.getSubDirectory(directory, DataSet.FOLDER);
-        checkBasicDataSet(folder, dataSetCode, observableType, true);
+        checkBasicDataSet(folder, dataSetCode, observableType, Boolean.TRUE);
         assertEquals(0, Utilities.getStringList(folder, DataSet.PARENT_CODES).size());
         assertEquals(producerCode, Utilities.getTrimmedString(folder, DataSet.PRODUCER_CODE));
         assertEquals(productionTimestamp, Utilities.getDateOrNull(folder,
@@ -97,17 +98,17 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
         parentCodes.add("parent2");
         try
         {
-            new DataSet(dataSetCode, observableType, true, null, null, parentCodes);
+            new DataSet(dataSetCode, observableType, Boolean.TRUE, null, null, parentCodes);
             fail(DataSet.NO_PARENT_FOR_MEASURED_DATA);
         } catch (final IllegalArgumentException ex)
         {
             assertEquals(DataSet.NO_PARENT_FOR_MEASURED_DATA, ex.getMessage());
         }
         final DataSet dataSet =
-                new DataSet(dataSetCode, observableType, false, null, null, parentCodes);
+                new DataSet(dataSetCode, observableType, Boolean.FALSE, null, null, parentCodes);
         dataSet.saveTo(directory);
         final IDirectory folder = Utilities.getSubDirectory(directory, DataSet.FOLDER);
-        checkBasicDataSet(folder, dataSetCode, observableType, false);
+        checkBasicDataSet(folder, dataSetCode, observableType, Boolean.FALSE);
         final List<String> parentList = Utilities.getStringList(folder, DataSet.PARENT_CODES);
         assertEquals(2, parentList.size());
         assertEquals(parentCode, parentList.get(0));
@@ -139,8 +140,8 @@ public final class DataSetFileSystemTestCase extends AbstractFileSystemTestCase
         parentCodes.add(parentCode);
         parentCodes.add("parent2");
         final DataSet dataSet =
-                new DataSet(dataSetCode, observableType, false, productionTimestamp, producerCode,
-                        parentCodes);
+                new DataSet(dataSetCode, observableType, Boolean.FALSE, productionTimestamp,
+                        producerCode, parentCodes);
         dataSet.saveTo(directory);
         final DataSet newDataSet = DataSet.loadFrom(directory);
         assertEquals(observableType, newDataSet.getObservableTypeCode());
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureLoaderTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureLoaderTest.java
index 76d668be6320e4f707f2a20d3c3b541a2b6d49e4..f6e20901d295deaf0dab6752ccc6bf501e020460 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureLoaderTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/DataStructureLoaderTest.java
@@ -25,6 +25,7 @@ import java.util.List;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.bds.Utilities.Boolean;
 import ch.systemsx.cisd.bds.storage.filesystem.FileStorage;
 import ch.systemsx.cisd.common.utilities.AbstractFileSystemTestCase;
 
@@ -45,7 +46,8 @@ public final class DataStructureLoaderTest extends AbstractFileSystemTestCase
         dataStructure.create();
         dataStructure.getOriginalData().addKeyValuePair("answer", "42");
         dataStructure.setFormat(UnknownFormatV1_0.UNKNOWN_1_0);
-        final ExperimentIdentifier experimentIdentifier = new ExperimentIdentifier("i", "g", "p", "e");
+        final ExperimentIdentifier experimentIdentifier =
+                new ExperimentIdentifier("i", "g", "p", "e");
         dataStructure.setExperimentIdentifier(experimentIdentifier);
         final ExperimentRegistrator experimentRegistrator =
                 new ExperimentRegistrator("john", "doe", "j@doe");
@@ -54,7 +56,8 @@ public final class DataStructureLoaderTest extends AbstractFileSystemTestCase
                 new Date(0)));
         dataStructure.setSample(new Sample("a", "CELL_PLATE", "b"));
         final List<String> parentCodes = createParentCodes();
-        dataStructure.setDataSet(new DataSet("s", "HCS_IMAGE", false, null, null, parentCodes));
+        dataStructure.setDataSet(new DataSet("s", "HCS_IMAGE", Boolean.FALSE, null, null,
+                parentCodes));
         dataStructure.close();
 
         final IDataStructure ds = new DataStructureLoader(workingDirectory).load("ds");
diff --git a/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java b/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java
index b38d9ea97f36b0816d81b5eb3a4314029bc6a5c7..34670ad18723b8e0f79543ca7ce68b58c93afe38 100644
--- a/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java
+++ b/bds/sourceTest/java/ch/systemsx/cisd/bds/UtilitiesTest.java
@@ -137,7 +137,7 @@ public class UtilitiesTest extends AbstractFileSystemTestCase
         assertEquals(1, listFiles.length);
         assertEquals(key, listFiles[0].getName());
         assertEquals(value, file.getStringContent().trim());
-        assertTrue(Utilities.getBoolean(directory, key));
+        assertTrue(Utilities.getBoolean(directory, key).toBoolean());
         directory.addKeyValuePair(key, "true");
         try
         {
@@ -148,7 +148,7 @@ public class UtilitiesTest extends AbstractFileSystemTestCase
             // Nothing to do here.
         }
         directory.addKeyValuePair(key, " FALSE ");
-        assertFalse(Utilities.getBoolean(directory, key));
+        assertFalse(Utilities.getBoolean(directory, key).toBoolean());
     }
 
 }
\ No newline at end of file