diff --git a/source/python/classes/ControlFile.py b/source/python/classes/ControlFile.py
index b62529904f9f7f8025afa07059e6fca12549d68c..772169dfc82b410faacbdd8924ee5afcee25fb6d 100644
--- a/source/python/classes/ControlFile.py
+++ b/source/python/classes/ControlFile.py
@@ -58,7 +58,7 @@ from mods.checks import (check_grid, check_area, check_levels, check_purefc,
                          check_basetime, check_public, check_acctype,
                          check_acctime, check_accmaxstep, check_time,
                          check_logicals_type, check_len_type_time_step,
-                         check_addpar, check_job_chunk)
+                         check_addpar, check_job_chunk, check_number)
 
 # ------------------------------------------------------------------------------
 # CLASS
@@ -645,6 +645,8 @@ class ControlFile(object):
 
         self.job_chunk = check_job_chunk(self.job_chunk)
 
+        self.number = check_number(self.number, self.mailfail)
+
         return
 
     def to_list(self):
diff --git a/source/python/mods/checks.py b/source/python/mods/checks.py
index cb8561569e7c90f1fc37fc38b692f403ed42a8b8..5c820329385b853ef70e816d789ae474aa042943 100644
--- a/source/python/mods/checks.py
+++ b/source/python/mods/checks.py
@@ -29,6 +29,7 @@ import _config
 import exceptions
 from tools import my_error, silent_remove
 from datetime import datetime
+import numpy as np
 # ------------------------------------------------------------------------------
 # FUNCTIONS
 # ------------------------------------------------------------------------------
@@ -824,3 +825,42 @@ def check_job_chunk(job_chunk):
         pass
 
     return job_chunk
+
+
+def check_number(number, mailfail):
+    '''Check for correct string format of ensemble member numbers.
+
+    Parameters
+    ----------
+    number : str
+        List of ensemble member forecast runs.
+
+    mailfail : list of str
+        Contains all email addresses which should be notified.
+        It might also contain just the ecmwf user name which will trigger
+        mailing to the associated email address for this user.
+
+    Return
+    ------
+    number : str
+        String with list of ensemble member forecast runs. E.g. '01/02/03/04'
+    '''
+
+    if '/' in number:
+        numbers = number.split('/')
+        if 'to' in number.lower() and 'by' in number.lower():
+            number = '{:0>3}'.format(int(numbers[0])) + '/TO/' + \
+                     '{:0>3}'.format(int(numbers[2])) + '/BY/' + \
+                     '{:0>3}'.format(int(numbers[4]))
+        elif 'to' in number.lower() and 'by' not in number.lower():
+            number = '{:0>3}'.format(int(numbers[0])) + '/TO/' + \
+                     '{:0>3}'.format(int(numbers[2]))
+        else:
+            numbers = ['{:0>3}'.format(i) for i in numbers]
+            number = '{:0>3}/'.join(numbers)
+    elif number.isdigit():
+        number = '{:0>3}'.format(int(number))
+    else:
+        pass
+
+    return number