diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java
index 4b6dc6f56dcccfb28cb4532f907e884c4895e710..97b808cfb0d2c037f0ed5af593b4d8c42049a962 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.PlateUtils;
 
 /**
  * Describes position of the well on the plate.
@@ -243,12 +244,7 @@ public class WellLocation implements ISerializable
 
     public String toWellIdString()
     {
-        return getNumberLetter(row) + column;
-    }
-
-    private String getNumberLetter(@SuppressWarnings("hiding") int row)
-    {
-        return Character.toString((char) ((char) row + 'A' - (char) 1));
+        return PlateUtils.translateRowNumberIntoLetterCode(row) + column;
     }
 
     @Override
diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java
index a67d0f73150ead415cb63df42f87e4d4cfca056a..f257f1477cb6966af2bf489616574306804a7ce3 100644
--- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java
+++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java
@@ -31,7 +31,7 @@ public class WellLocationTest
 {
 
     @DataProvider(name = "valid spreadsheet locations")
-    public Object[][] provideCorrectData()
+    Object[][] provideCorrectData()
     {
         return new Object[][]
             {
@@ -56,6 +56,25 @@ public class WellLocationTest
                 .toString(row), Integer.toString(col)));
     }
 
+    @DataProvider(name = "valid well ids")
+    Object[][] provideWellIdStrings()
+    {
+        return new Object[][]
+            {
+                { "A1", 1, 1 },
+                { "A123", 1, 123 },
+                { "B9", 2, 9 },
+                { "C23", 3, 23 },
+                { "AA1", 27, 1 },
+                { "ZZ1000", 26 * 26 + 26, 1000 } };
+    }
+
+    @Test(dataProvider = "valid well ids")
+    public void testGetWellIdString(String location, int row, int col)
+    {
+        assertEquals(location, new WellLocation(row, col).toWellIdString());
+    }
+
     @Test
     public void testParseLocationStrWithEmptyString()
     {