diff --git a/src/main/java/se/su/dsv/scipro/project/pages/AbstractProjectIdeaPage.java b/src/main/java/se/su/dsv/scipro/project/pages/AbstractProjectIdeaPage.java
index e5566a380e..cd8383fc15 100644
--- a/src/main/java/se/su/dsv/scipro/project/pages/AbstractProjectIdeaPage.java
+++ b/src/main/java/se/su/dsv/scipro/project/pages/AbstractProjectIdeaPage.java
@@ -2,34 +2,22 @@ package se.su.dsv.scipro.project.pages;
 
 import java.util.List;
 
-import javax.servlet.http.Cookie;
-
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
-import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.protocol.http.WebRequest;
-import org.apache.wicket.protocol.http.WebResponse;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.time.Duration;
 import org.odlabs.wiquery.ui.dialog.Dialog;
 
-import se.su.dsv.scipro.SciProSession;
-import se.su.dsv.scipro.data.DomainObjectDetachableModel;
-import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
-import se.su.dsv.scipro.data.dataobjects.Project;
 import se.su.dsv.scipro.data.dataobjects.Student;
 import se.su.dsv.scipro.data.dataobjects.User;
-import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
 import se.su.dsv.scipro.match.dataobject.Idea.IdeaStatus;
+import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
 import se.su.dsv.scipro.project.panels.AcceptIdeaDialogPanel;
 import se.su.dsv.scipro.project.panels.CompleteIdeaDialogPanel;
 import se.su.dsv.scipro.project.panels.ProjectIdeaTabMenuPanel;
-import se.su.dsv.scipro.project.panels.ProjectSubTabMenuPanel;
 import se.su.dsv.scipro.springdata.services.StudentService;
 import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
 /**
@@ -121,8 +109,7 @@ public abstract class AbstractProjectIdeaPage extends ProjectPage {
 					stop();
 				}
 			});
-		} else
-			System.out.println("No confirmed ideas");
+		} 
 	}
 	
 }
diff --git a/src/main/java/se/su/dsv/scipro/project/pages/ProjectIdeaSubmissionPage.java b/src/main/java/se/su/dsv/scipro/project/pages/ProjectIdeaSubmissionPage.java
index b539543806..c5dee601b3 100644
--- a/src/main/java/se/su/dsv/scipro/project/pages/ProjectIdeaSubmissionPage.java
+++ b/src/main/java/se/su/dsv/scipro/project/pages/ProjectIdeaSubmissionPage.java
@@ -18,12 +18,15 @@ import se.su.dsv.scipro.project.panels.CheatSheetPanel;
 import se.su.dsv.scipro.project.panels.ProjectIdeaSubmissionPanel;
 import se.su.dsv.scipro.security.auth.Authorization;
 import se.su.dsv.scipro.security.auth.roles.Roles;
+import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
 
 @Authorization(authorizedRoles={Roles.STUDENT})
 public class ProjectIdeaSubmissionPage extends AbstractProjectIdeaPage implements MenuHighlightProjectIdeas {
 
     @SpringBean
 	private ProjectIdeaDao projectIdeaDao;
+    @SpringBean
+    private SupervisorIdeaService ideaService;
 	
 	public ProjectIdeaSubmissionPage(PageParameters pp) {
 		super(pp);
@@ -38,12 +41,14 @@ public class ProjectIdeaSubmissionPage extends AbstractProjectIdeaPage implement
         	for(Student s: authorRoles){
         		authors.add(s.getUser());
         	}
-        	if(!authors.contains(SciProSession.get().getUser())){
+        	if(!authors.contains(getUser())){
         		failAndRedirect();
         	}
         }else
 			idea = new ProjectIdea();
-		add(new ProjectIdeaSubmissionPanel("projectIdeaPanel", getUser(), idea));
+        
+        boolean alreadyParticipating = ideaService.authorParticipatingOnIdea(getUser());
+		add(new ProjectIdeaSubmissionPanel("projectIdeaPanel", getUser(), idea, alreadyParticipating));
 		add(new CheatSheetPanel("cheatSheetPanel"));
 
 	}
diff --git a/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaPeriodPanel.java b/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaPeriodPanel.java
index 1676b4b197..249b752d04 100644
--- a/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaPeriodPanel.java
+++ b/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaPeriodPanel.java
@@ -17,11 +17,13 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 import se.su.dsv.scipro.SciProSession;
 import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
 import se.su.dsv.scipro.data.dataobjects.ProjectClass;
+import se.su.dsv.scipro.data.dataobjects.User;
 import se.su.dsv.scipro.data.facade.ProjectIdeaFacade;
 import se.su.dsv.scipro.icons.ImageObject;
 import se.su.dsv.scipro.match.dao.interfaces.ApplicationPeriodDao;
 import se.su.dsv.scipro.match.dataobject.ApplicationPeriod;
 import se.su.dsv.scipro.project.pages.ProjectIdeaSubmissionPage;
+import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
 import se.su.dsv.scipro.util.DateFormatter;
 
 public class ProjectIdeaPeriodPanel extends Panel {
@@ -34,6 +36,8 @@ public class ProjectIdeaPeriodPanel extends Panel {
 	private ProjectClassDao projectClassDao;
 	@SpringBean
 	private ProjectIdeaFacade projectIdeaFacade;
+	@SpringBean
+	private SupervisorIdeaService ideaService;
 
 	private WebMarkupContainer  periodContainer;
 
@@ -123,7 +127,9 @@ public class ProjectIdeaPeriodPanel extends Panel {
 		alreadySubmittedLabel.setVisible(false);
 		periodContainer.add(alreadySubmittedLabel);
 
-		if (projectIdeaFacade.projectIdeaAlreadySubmittedThisPeriod(SciProSession.get().getUser(), currentPeriods)){
+		User currentUser = SciProSession.get().getUser();
+		
+		if (projectIdeaFacade.projectIdeaAlreadySubmittedThisPeriod(currentUser, currentPeriods)||ideaService.authorParticipatingOnIdea(currentUser)){
 			newIdeaLink.setVisible(false);
 			alreadySubmittedLabel.setVisible(true);
 		}
diff --git a/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaSubmissionPanel.java b/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaSubmissionPanel.java
index d167c713cb..ef2634d9be 100644
--- a/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaSubmissionPanel.java
+++ b/src/main/java/se/su/dsv/scipro/project/panels/ProjectIdeaSubmissionPanel.java
@@ -51,8 +51,8 @@ import se.su.dsv.scipro.match.dao.interfaces.ApplicationPeriodDao;
 import se.su.dsv.scipro.match.dao.interfaces.AuthorDao;
 import se.su.dsv.scipro.match.dao.interfaces.ExemptionDao;
 import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
-import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
 import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao.TYPE;
+import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
 import se.su.dsv.scipro.match.dataobject.ApplicationPeriod;
 import se.su.dsv.scipro.match.dataobject.Keyword;
 import se.su.dsv.scipro.match.dataobject.KeywordType;
@@ -99,10 +99,10 @@ public class ProjectIdeaSubmissionPanel extends Panel {
      * @param idea
      *      The project idea, that is submitted
 	 */
-	public ProjectIdeaSubmissionPanel(String id, User user, ProjectIdea idea) {
+	public ProjectIdeaSubmissionPanel(String id, User user, ProjectIdea idea, boolean alreadyParticipating) {
 		super(id);
 		add(new FeedbackPanel("feedback"));
-		add(new ProjectIdeaForm("projectIdeaForm", user, new Model<ProjectIdea>(idea)));
+		add(new ProjectIdeaForm("projectIdeaForm", user, new Model<ProjectIdea>(idea)).setEnabled(!alreadyParticipating));
 		dialogSetup();
 	}
 
diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorIdeaServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorIdeaServiceImpl.java
index 0b63974cd6..200cc2272b 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorIdeaServiceImpl.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/SupervisorIdeaServiceImpl.java
@@ -284,6 +284,12 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
 		return supervisorIdeaRepo.countIdeasByAuthorAndStatus(author, status);
 	}
 	
+	@Override
+	public boolean authorParticipatingOnIdea(User user) {
+		Student author = studentService.findByUser(user);
+		return alreadyParticipatingOnIdea(author);
+	}
+	
 	private Predicate predicateFromParams(FilterParams params) {
 		return levelFilter(params.getLevels()).and(bySupervisor(params.getSupervisor()));
 	}
@@ -341,7 +347,7 @@ public class SupervisorIdeaServiceImpl extends AbstractQueryService<SupervisorId
 	private BooleanExpression byStatus(IdeaStatus status){
 		return QSupervisorIdea.supervisorIdea.ideaStatus.eq(status);
 	}
-
+	
 	private boolean alreadyParticipatingOnIdea(Student author) {
 		Long ideas = countByAuthorAndStatus(author, IdeaStatus.TAKEN);
 		if(ideas==0)
diff --git a/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorIdeaService.java b/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorIdeaService.java
index 93221f3ea9..e847d41b6b 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorIdeaService.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/services/SupervisorIdeaService.java
@@ -38,6 +38,7 @@ public interface SupervisorIdeaService extends GenericService<SupervisorIdea, Lo
 
 	boolean hasTakenIdeas(User authorUser, boolean confirmed);
 	boolean isIdeaEditable(SupervisorIdea idea, User currentUser);
+	boolean authorParticipatingOnIdea(User user);
 
 	Pair<Boolean, String> validateIdeaAcceptance(SupervisorIdea idea, User loggedInUser, SortedSet<Student> students);
 	Pair<Boolean, String> validatePartnerAcceptance(User loggedInUser);