diff --git a/pom.xml b/pom.xml
index 67ffb76c15..f312c39b22 100644
--- a/pom.xml
+++ b/pom.xml
@@ -234,6 +234,18 @@
 			<version>1.4.1</version>
 		</dependency>
 
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>4.1.0.Final</version>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+            <version>1.0.0.GA</version>
+        </dependency>
+
 		<dependency>
 			<groupId>biz.source_code</groupId>
 			<artifactId>base64coder</artifactId>
@@ -257,7 +269,7 @@
 			<scope>test</scope>
 		</dependency>
 
-        <!--<dependency>
+     <!--   <dependency>
             <groupId>javax.validation</groupId>
             <artifactId>validation-api</artifactId>
             <version>1.0.0.GA</version>
diff --git a/resources/db_update_scripts/current.sql b/resources/db_update_scripts/current.sql
index cf98b6d956..e76439b1c6 100644
--- a/resources/db_update_scripts/current.sql
+++ b/resources/db_update_scripts/current.sql
@@ -1,7 +1,7 @@
--- it is not possible to set a proper default DATETIME in mysql so we settle for "0", the sql works irrespective if the table are empty or not
-/*ALTER TABLE `ApplicationPeriod` CHANGE `startDate` `startDate` DATETIME NOT NULL DEFAULT 0,
-CHANGE `endDate` `endDate` DATETIME NOT NULL DEFAULT 0,
-CHANGE `name` `name` varchar(255) NOT NULL*/
+-- we choose not to have any default DATETIME values
+ALTER TABLE `ApplicationPeriod` CHANGE `startDate` `startDate` DATETIME NOT NULL,
+CHANGE `endDate` `endDate` DATETIME NOT NULL,
+CHANGE `name` `name` varchar(255) NOT NULL
+
 
--- => the new SQL should be tested, ie "run all tests", before delivering
 
diff --git a/src/main/java/se/su/dsv/scipro/match/dataobject/ApplicationPeriod.java b/src/main/java/se/su/dsv/scipro/match/dataobject/ApplicationPeriod.java
index b844501d9f..f3c20e8b2a 100644
--- a/src/main/java/se/su/dsv/scipro/match/dataobject/ApplicationPeriod.java
+++ b/src/main/java/se/su/dsv/scipro/match/dataobject/ApplicationPeriod.java
@@ -5,7 +5,7 @@ import java.util.HashSet;
 import java.util.Set;
 
 import javax.persistence.*;
-//import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotNull;
 
 import org.hibernate.annotations.Cache;
 import org.hibernate.annotations.CacheConcurrencyStrategy;
@@ -29,16 +29,16 @@ public class ApplicationPeriod extends DomainObject {
     @ManyToMany
     private Set<ProjectClass> projectClass = new HashSet<ProjectClass>();
 
-    //@NotNull
+    @NotNull
     //@Basic (optional = false)
     private String name;
 
-    //@NotNull
+    @NotNull
     //@Basic (optional = false)
     @Temporal(TemporalType.DATE)
     private Date startDate;
 
-    //@NotNull
+    @NotNull
     //@Basic (optional = false)
     @Temporal(TemporalType.DATE)
     private Date endDate;
diff --git a/src/main/java/se/su/dsv/scipro/match/facade/ApplicationPeriodFacade.java b/src/main/java/se/su/dsv/scipro/match/facade/ApplicationPeriodFacade.java
index 402dc5d3b9..a5d196e8e3 100644
--- a/src/main/java/se/su/dsv/scipro/match/facade/ApplicationPeriodFacade.java
+++ b/src/main/java/se/su/dsv/scipro/match/facade/ApplicationPeriodFacade.java
@@ -114,24 +114,37 @@ public class ApplicationPeriodFacade {
      * Helper that is used to initialize constructors
      * @return ApplicationPeriod the object that is returned
      */
-    public static ApplicationPeriod createDummyApplicationPeriod(){
+    public static ApplicationPeriod createDummyApplicationPeriod(final String name){
         ApplicationPeriod appPeriod = new ApplicationPeriod();
         Calendar cal = Calendar.getInstance();
         appPeriod.setStartDate(cal.getTime());
         cal.add(Calendar.MONTH, 1);
         appPeriod.setEndDate(cal.getTime());
-        appPeriod.setName("...");
+        appPeriod.setName(name);
         return appPeriod;
     }
 
-    @Transactional
-    public ApplicationPeriod createApplicationPeriod(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate) {
+   // @Transactional
+    public ApplicationPeriod createApplicationPeriod(final Set<ProjectClass> projectClassSet, final String name) {
         Calendar cal = Calendar.getInstance();
         ApplicationPeriod appPeriod = new ApplicationPeriod();
-        appPeriod.setStartDate(startDate != null ? startDate : cal.getTime());
+        appPeriod.setStartDate(cal.getTime());
         cal.add(Calendar.MONTH, 1);
-        appPeriod.setEndDate(endDate != null ? endDate : cal.getTime());
+        appPeriod.setEndDate(cal.getTime());
         appPeriod.setProjectClass(projectClassSet);
+        appPeriod.setName(name);
+        return applicationPeriodDao.save(appPeriod);
+    }
+
+   // @Transactional
+    public ApplicationPeriod createApplicationPeriodDates(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate, final String name) {
+        Calendar cal = Calendar.getInstance();
+        ApplicationPeriod appPeriod = new ApplicationPeriod();
+        appPeriod.setStartDate(startDate);
+        cal.add(Calendar.MONTH, 1);
+        appPeriod.setEndDate(endDate);
+        appPeriod.setProjectClass(projectClassSet);
+        appPeriod.setName(name);
         return applicationPeriodDao.save(appPeriod);
     }
 
diff --git a/src/main/java/se/su/dsv/scipro/match/panel/MatchPeriodEditPanel.java b/src/main/java/se/su/dsv/scipro/match/panel/MatchPeriodEditPanel.java
index dc20918d0d..e2f2b2bf42 100644
--- a/src/main/java/se/su/dsv/scipro/match/panel/MatchPeriodEditPanel.java
+++ b/src/main/java/se/su/dsv/scipro/match/panel/MatchPeriodEditPanel.java
@@ -43,7 +43,7 @@ public class MatchPeriodEditPanel extends Panel {
     private Component feedbackPanel;
 
     public MatchPeriodEditPanel(final String id, final WebMarkupContainer container) {
-        this(id, new Model<ApplicationPeriod>(ApplicationPeriodFacade.createDummyApplicationPeriod()), container);
+        this(id, new Model<ApplicationPeriod>(ApplicationPeriodFacade.createDummyApplicationPeriod("...")), container);
     }
     public MatchPeriodEditPanel(String id, IModel<ApplicationPeriod> model, final WebMarkupContainer container) {
         super(id);
diff --git a/src/test/java/se/su/dsv/scipro/match/TestGreedyMatchingAlgorithm.java b/src/test/java/se/su/dsv/scipro/match/TestGreedyMatchingAlgorithm.java
index 8465a338c5..1641ea0394 100644
--- a/src/test/java/se/su/dsv/scipro/match/TestGreedyMatchingAlgorithm.java
+++ b/src/test/java/se/su/dsv/scipro/match/TestGreedyMatchingAlgorithm.java
@@ -55,7 +55,9 @@ public class TestGreedyMatchingAlgorithm {
     @Autowired
     private MatchDao matchDao;
 
-
+    @Autowired
+    private ApplicationPeriodDao applicationPeriodDao;
+    
     @Autowired
     private ApplicationPeriodFacade applicationPeriodFacade;
 
@@ -123,7 +125,10 @@ public class TestGreedyMatchingAlgorithm {
         Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
         projectClassSet.add(bachelorProjectClass);
         projectClassSet.add(masterProjectClass);
-        ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
+        List<ApplicationPeriod> myList = new ArrayList<ApplicationPeriod>();
+        myList.addAll(applicationPeriodDao.findAll());
+        ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, "name1");
+        
         bachelorProjectIdea = createProjectIdea(bachelorProjectClass, applicationPeriod);
         masterSupervisor = createSupervisor("Birger", "Andersson", languages);
         masterProjectClass = createProjectClass(ProjectClass.MASTER, "Master", "Master project class");
diff --git a/src/test/java/se/su/dsv/scipro/match/TestMatcher.java b/src/test/java/se/su/dsv/scipro/match/TestMatcher.java
index 895eae5bf0..a4e63f2e2e 100644
--- a/src/test/java/se/su/dsv/scipro/match/TestMatcher.java
+++ b/src/test/java/se/su/dsv/scipro/match/TestMatcher.java
@@ -133,7 +133,7 @@ public class TestMatcher {
         projectClassSet.add(bachelor);
         projectClassSet.add(master);
 
-        ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
+        ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, "name1");
         ProjectIdea projectIdea1 = new ProjectIdea();
         projectIdea1.setTitle("Project idea 1");
         projectIdea1.setApplicationPeriod(applicationPeriod);
diff --git a/src/test/java/se/su/dsv/scipro/match/dao/TestApplicationPeriodDao.java b/src/test/java/se/su/dsv/scipro/match/dao/TestApplicationPeriodDao.java
index cb0f0b061f..f832627697 100644
--- a/src/test/java/se/su/dsv/scipro/match/dao/TestApplicationPeriodDao.java
+++ b/src/test/java/se/su/dsv/scipro/match/dao/TestApplicationPeriodDao.java
@@ -113,8 +113,8 @@ public class TestApplicationPeriodDao {
 
         Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
         projectClassSet.add(bachelor);
-        applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, date("2011-06-14"), date("2011-07-01"));
-        applicationPeriod2 =applicationPeriodFacade.createApplicationPeriod(projectClassSet, date("2011-07-15"), date("2011-08-01"));
+        applicationPeriod = applicationPeriodFacade.createApplicationPeriodDates(projectClassSet, date("2011-06-14"), date("2011-07-01"), "name1");
+        applicationPeriod2 =applicationPeriodFacade.createApplicationPeriodDates(projectClassSet, date("2011-07-15"), date("2011-08-01"), "name2");
         projectIdea1 = createProjectIdea(applicationPeriod, bachelor);
         projectIdea2 = createProjectIdea(applicationPeriod, bachelor);
         projectIdea3 = createProjectIdea(applicationPeriod, bachelor);
@@ -203,7 +203,7 @@ public class TestApplicationPeriodDao {
         final Date startDate1 = cal.getTime();
         cal.add(Calendar.MONDAY, 3);
         final Date endDate1 = cal.getTime();
-        ApplicationPeriod applicationPeriod =  applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
+        ApplicationPeriod applicationPeriod =  applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
         boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
         Assert.assertFalse(periodRemoved);      // should be false
     }
@@ -223,7 +223,7 @@ public class TestApplicationPeriodDao {
         final Date startDate1 = cal.getTime();
         cal.add(Calendar.MONTH, 1);
         final Date endDate1 = cal.getTime();
-        ApplicationPeriod applicationPeriod =  applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
+        ApplicationPeriod applicationPeriod =  applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
         boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
         Assert.assertTrue(periodRemoved);      // should be true
     }
@@ -242,7 +242,7 @@ there should exist an OPEN "bachelor"application period */
         final Date startDate1 = cal.getTime();
         cal.add(Calendar.MONTH, 1);
         final Date endDate1 = cal.getTime();
-        applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
+        applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
         boolean exists = applicationPeriodFacade.openApplicationPeriodsExists(bachelor);
         Assert.assertTrue(exists);      // should exist
     }
@@ -260,7 +260,7 @@ there should exist an OPEN "bachelor"application period */
         final Date startDate1 = cal.getTime();
         cal.add(Calendar.MONTH, 2);
         final Date endDate1 = cal.getTime();
-        applicationPeriodFacade.createApplicationPeriod(myMasterSet, startDate1, endDate1);
+        applicationPeriodFacade.createApplicationPeriodDates(myMasterSet, startDate1, endDate1, "name1");
         boolean exists = applicationPeriodFacade.openApplicationPeriodsExists(bachelor);
         Assert.assertFalse(exists);      // should NOT exist
     }
@@ -293,12 +293,12 @@ should NOT overlap.  */
         cal.set(2012, Calendar.APRIL, 2);
         cal.set(Calendar.HOUR_OF_DAY, 13);   // HOUR_OF_DAY is used for the 24 hour clock
         final Date endDate1 = cal.getTime();
-        applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
+        applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
         cal.set(Calendar.HOUR_OF_DAY, 14);
         final Date startDate2 = cal.getTime();
         cal.set(2012, Calendar.MAY, 2);
         final Date endDate2 = cal.getTime();
-        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2));
+        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate2, endDate2, "name1"));
         Assert.assertFalse(periodOverlap);    // should NOT overlap
     }
 
@@ -317,7 +317,7 @@ should NOT overlap.  */
         final Date startDate1 = cal.getTime();
         cal.set(2012, Calendar.APRIL, 2);
         final Date endDate1 = cal.getTime();
-        ApplicationPeriod applicationPeriod1 = applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
+        ApplicationPeriod applicationPeriod1 = applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
 // edit the period
         applicationPeriod1.getProjectClass().add(master);
         cal.set(2012, Calendar.MAY, 2);
@@ -345,10 +345,10 @@ should NOT overlap.  */
         final Date endDate = cal.getTime();
         cal.set(Calendar.HOUR_OF_DAY, 14);
         final Date endDate2 = cal.getTime();
-        applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate);
+        applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate, "name1");
         Set<ProjectClass> myMasterSet = new HashSet<ProjectClass>();
         myMasterSet.add(master);
-        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myMasterSet, startDate, endDate2));
+        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myMasterSet, startDate, endDate2, "name1"));
         Assert.assertFalse(periodOverlap);    // should NOT overlap
     }
 
@@ -366,12 +366,12 @@ should NOT overlap.  */
         final Date startDate1 = cal.getTime();
         cal.set(2012, Calendar.DECEMBER, 2);
         final Date endDate1 = cal.getTime();
-        applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
+        applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate1, endDate1, "name1");
         cal.set(2012, Calendar.MAY, 2);
         final Date startDate2 = cal.getTime();
         cal.set(2012, Calendar.JUNE, 2);
         final Date endDate2 = cal.getTime();
-        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2));
+        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate2, endDate2, "name1"));
         Assert.assertTrue(periodOverlap);    // should overlap
     }
 
@@ -389,13 +389,13 @@ should NOT overlap.  */
         final Date startDate = cal.getTime();
         cal.set(2012, Calendar.APRIL, 2);
         final Date endDate = cal.getTime();
-        applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate);
+        applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate, "name1");
         cal.set(Calendar.HOUR_OF_DAY, 13);
         final Date endDate2 = cal.getTime();
         Set<ProjectClass> multipleProjectClasses = new HashSet<ProjectClass>();
         multipleProjectClasses.add(bachelor);
         multipleProjectClasses.add(master);
-        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate2));
+        boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriodDates(myBachelorSet, startDate, endDate2, "name1"));
         Assert.assertTrue(periodOverlap);    // should overlap
     }
 
diff --git a/src/test/java/se/su/dsv/scipro/match/dao/TestMatchDao.java b/src/test/java/se/su/dsv/scipro/match/dao/TestMatchDao.java
index cc71ecac38..64845d4ad9 100644
--- a/src/test/java/se/su/dsv/scipro/match/dao/TestMatchDao.java
+++ b/src/test/java/se/su/dsv/scipro/match/dao/TestMatchDao.java
@@ -115,7 +115,7 @@ public class TestMatchDao {
         projectIdea1.setProjectClass(projectClass);
         Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
         projectClassSet.add(projectClass);
-        final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
+        final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, "name1");
         projectIdea1.setApplicationPeriod(applicationPeriod);
         projectIdea1 = projectIdeaDao.save(projectIdea1);
 
diff --git a/src/test/java/se/su/dsv/scipro/match/dao/TestProjectIdeaDao.java b/src/test/java/se/su/dsv/scipro/match/dao/TestProjectIdeaDao.java
index 5b09e9c239..df1182a97f 100644
--- a/src/test/java/se/su/dsv/scipro/match/dao/TestProjectIdeaDao.java
+++ b/src/test/java/se/su/dsv/scipro/match/dao/TestProjectIdeaDao.java
@@ -166,7 +166,7 @@ public class TestProjectIdeaDao {
         Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
         projectClassSet.add(bachelor);
         projectClassSet.add(master);
-        ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
+        ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, "name1");
 
         projectIdea1 = new ProjectIdea();
         projectIdea1.setTitle("Project idea 1");
diff --git a/src/test/java/se/su/dsv/scipro/match/dao/TestSupervisorDao.java b/src/test/java/se/su/dsv/scipro/match/dao/TestSupervisorDao.java
index f0af4afad9..eeff6486e9 100644
--- a/src/test/java/se/su/dsv/scipro/match/dao/TestSupervisorDao.java
+++ b/src/test/java/se/su/dsv/scipro/match/dao/TestSupervisorDao.java
@@ -214,7 +214,7 @@ public class TestSupervisorDao {
         projectClassSet.add(bachelor);
         projectClassSet.add(master);
 
-        final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
+        final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, "name1");
 
         projectIdea1 = new ProjectIdea();
         projectIdea1.setTitle("Project idea 1");
diff --git a/src/test/java/se/su/dsv/scipro/match/dataobject/TestProjectIdea.java b/src/test/java/se/su/dsv/scipro/match/dataobject/TestProjectIdea.java
index 6f7b4b32f4..a5da2c3dbd 100644
--- a/src/test/java/se/su/dsv/scipro/match/dataobject/TestProjectIdea.java
+++ b/src/test/java/se/su/dsv/scipro/match/dataobject/TestProjectIdea.java
@@ -101,7 +101,7 @@ public class TestProjectIdea {
         Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
         projectClassSet.add(projectClass);
 
-        final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
+        final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, "name1");
         target.setProjectClass(projectClass);
         target.setApplicationPeriod(applicationPeriod);
         key1 = new Keyword("key 1", standard);