diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/CheckBoxField.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/CheckBoxField.java
index f5bcad0c2e052711bcbb06b835df7cbb5722b612..dbde3208012652e245bfa1f646f16d8134c5dd15 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/CheckBoxField.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/field/CheckBoxField.java
@@ -21,9 +21,11 @@ import com.extjs.gxt.ui.client.widget.form.CheckBox;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.FieldUtil;
 
 /**
- * A small {@link CheckBox} extension for registering a boolean.
+ * A small {@link CheckBox} extension for registering a boolean. Created field will always be
+ * aligned to the left.
  * 
  * @author Christian Ribeaud
+ * @author Piotr Buczek
  */
 public final class CheckBoxField extends CheckBox
 {
@@ -32,4 +34,18 @@ public final class CheckBoxField extends CheckBox
         setFieldLabel(labelField);
         FieldUtil.setMandatoryFlag(this, mandatory);
     }
+
+    @Override
+    // always align checkbox to the left (default implementation aligns to center)
+    protected void alignElements()
+    {
+        input.alignTo(getElement(), "l-l", new int[]
+            { 0, 0 });
+        if (getBoxLabel() != null)
+        {
+            boxLabelEl.alignTo(input.dom, "l-r", new int[]
+                { 5, 0 });
+        }
+    }
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
index d573fee2739892b38e730cdacade2835c2c6db6b..6d7e09e0a8c81d4faf00689ff9bab5c44069c425 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
@@ -48,6 +48,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractRegistrationForm.InfoBoxResetListener;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetTypeSelectionWidget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentTypeSelectionWidget;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CheckBoxField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.PropertyFieldFactory;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.material.MaterialTypeSelectionWidget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleTypeSelectionWidget;
@@ -250,9 +251,8 @@ public final class PropertyTypeAssignmentForm extends LayoutContainer implements
     {
         if (mandatoryCheckbox == null)
         {
-            mandatoryCheckbox = new CheckBox();
+            mandatoryCheckbox = new CheckBoxField(viewContext.getMessage(Dict.MANDATORY), false);
             mandatoryCheckbox.setId(createChildId(MANDATORY_CHECKBOX_ID_SUFFIX));
-            mandatoryCheckbox.setFieldLabel(viewContext.getMessage(Dict.MANDATORY));
             mandatoryCheckbox.setValue(false);
             mandatoryCheckbox.addListener(Events.Change, new InfoBoxResetListener(infoBox));
         }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java
index 6a8c53497e6a1af4217c890cff204af194f8fbdb..929ff44160b961f4f50586194ba6e822e1e9ca20 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentGrid.java
@@ -42,6 +42,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.PropertyTypeAssignmentColDefKind;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CheckBoxField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.PropertyFieldFactory;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IBrowserGridActionInvoker;
@@ -254,8 +255,8 @@ public class PropertyTypeAssignmentGrid extends
                 {
                     originalIsMandatory = etpt.isMandatory();
 
-                    mandatoryCheckbox = new CheckBox();
-                    mandatoryCheckbox.setFieldLabel(viewContext.getMessage(Dict.MANDATORY));
+                    mandatoryCheckbox =
+                            new CheckBoxField(viewContext.getMessage(Dict.MANDATORY), false);
                     mandatoryCheckbox.setValue(originalIsMandatory);
                     addField(mandatoryCheckbox);
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyRegistrationFieldSet.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyRegistrationFieldSet.java
index fb7eb2b6001c13f42d89826642e10cc2dff591cc..9dde5adf1eeb8df23f3cbbb11360f0e1da606763 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyRegistrationFieldSet.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/vocabulary/VocabularyRegistrationFieldSet.java
@@ -35,6 +35,7 @@ import com.extjs.gxt.ui.client.widget.form.TextArea;
 import com.extjs.gxt.ui.client.widget.layout.FormLayout;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CheckBoxField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.CodeField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.DescriptionField;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.field.MultilineVarcharField;
@@ -192,9 +193,9 @@ public final class VocabularyRegistrationFieldSet extends FieldSet
 
         public static CheckBox createChosenFromListCheckbox(final IMessageProvider messageProvider)
         {
-            final CheckBox result = new CheckBox();
-            result.setFieldLabel(messageProvider
-                    .getMessage(Dict.VOCABULARY_SHOW_AVAILABLE_TERMS_IN_CHOOSERS));
+            final CheckBox result =
+                    new CheckBoxField(messageProvider
+                            .getMessage(Dict.VOCABULARY_SHOW_AVAILABLE_TERMS_IN_CHOOSERS), false);
 
             // If user changes value of this checkbox to true a confirmation window will be shown.
             // Programatic change of the value with setValue(true) doesn't fire Events.Change event.