diff --git a/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java
index d285af5c9a..0bc975ed68 100644
--- a/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java
+++ b/src/main/java/se/su/dsv/scipro/datatables/checklist/CheckListTemplateDataPanel.java
@@ -4,24 +4,17 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.extensions.markup.html.repeater.data.table.*;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
-import se.su.dsv.scipro.SciProSession;
-import se.su.dsv.scipro.checklists.panels.ChecklistCategoryPanel;
 import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
 import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
 import se.su.dsv.scipro.reusable.AjaxDropDown;
-import se.su.dsv.scipro.reusable.FilterBooleanPanel;
 import se.su.dsv.scipro.reusable.FilterStringPanel;
 import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
-import se.su.dsv.scipro.util.JavascriptEventConfirmation;
-import sun.plugin2.message.JavaScriptBaseMessage;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -119,17 +112,7 @@ public abstract class CheckListTemplateDataPanel extends Panel {
             columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), null) {
                 @Override
                 protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
-                    //peer templates can be connected to peer requests and cannot be deleted
-                    boolean isPeer = false;
-                    for (ChecklistCategory clc : clicked.getObject().getCategories()){
-                        if (clc.getCategoryName().equalsIgnoreCase("peer")){
-                            isPeer = true;
-                        }
-                    }
-                    if (!isPeer){
-                        checklistTemplateService.lowerTemplateNumbersAbove(clicked.getObject().getTemplateNumber());
-                        checklistTemplateService.delete(clicked.getObject().getId());
-                    }
+                    checklistTemplateService.safeDeleteChecklistTemplate(clicked.getObject());
                     target.addComponent(table);
                 }
             };
diff --git a/src/main/java/se/su/dsv/scipro/springdata/repos/PeerRequestRepo.java b/src/main/java/se/su/dsv/scipro/springdata/repos/PeerRequestRepo.java
index 1962b3459a..8288ba3299 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/repos/PeerRequestRepo.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/repos/PeerRequestRepo.java
@@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.querydsl.QueryDslPredicateExecutor;
 import org.springframework.transaction.annotation.Transactional;
 
+import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
 import se.su.dsv.scipro.data.dataobjects.Project;
 import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
 import se.su.dsv.scipro.peer.enums.RequestStatus;
@@ -14,6 +15,7 @@ import se.su.dsv.scipro.peer.enums.RequestStatus;
 public interface PeerRequestRepo extends JpaRepository<PeerRequest, Long>, QueryDslPredicateExecutor<PeerRequest> {
 
 	List<PeerRequest> findByProjectAndStatus(Project project, RequestStatus status);
+    List<PeerRequest> findByCheckListTemplate(CheckListTemplate checkListTemplate);
 }
 
 
diff --git a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java
index 7450f5dcb6..701ea9b2db 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/serviceimpls/ChecklistTemplateServiceImpl.java
@@ -11,7 +11,9 @@ import se.su.dsv.scipro.SciProSession;
 import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
 import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
 import se.su.dsv.scipro.data.dataobjects.QCheckListTemplate;
+import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
 import se.su.dsv.scipro.springdata.repos.ChecklistTemplateRepo;
+import se.su.dsv.scipro.springdata.repos.PeerRequestRepo;
 import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
 
 
@@ -29,6 +31,8 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList
 
 	@Resource
 	private ChecklistTemplateRepo checklistTemplateRepo;
+    @Resource
+    private PeerRequestRepo peerRequestRepo;
 
 	@Autowired
 	public ChecklistTemplateServiceImpl(
@@ -110,11 +114,16 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList
 
     @Transactional ( readOnly = false )
     @Override
-    public void lowerTemplateNumbersAbove(int templateNumber) {
-        for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(templateNumber)){
+    public void safeDeleteChecklistTemplate(CheckListTemplate checkListTemplate) {
+        for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(checkListTemplate.getTemplateNumber())){
             clt.setTemplateNumber(clt.getTemplateNumber() -1);
             System.out.println(clt.getName() + " " + clt.getTemplateNumber());
         }
+        for (PeerRequest pr : peerRequestRepo.findByCheckListTemplate(checkListTemplate)){
+            pr.setCheckListTemplate(null);
+            peerRequestRepo.save(pr);
+        }
+        checklistTemplateRepo.delete(checkListTemplate);
     }
 
 
diff --git a/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java b/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java
index 0a3f0700f8..93afa6724f 100644
--- a/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java
+++ b/src/main/java/se/su/dsv/scipro/springdata/services/ChecklistTemplateService.java
@@ -16,5 +16,5 @@ public interface ChecklistTemplateService extends CrudService<CheckListTemplate,
     void upChecklistTemplate(CheckListTemplate checkListTemplate);
     void downChecklistTemplate(CheckListTemplate checkListTemplate);
     CheckListTemplate prepareNewTemplate();
-    void lowerTemplateNumbersAbove(int templateNumber);
+    void safeDeleteChecklistTemplate(CheckListTemplate checkListTemplate);
 }