diff --git a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
index a77046be30004da3c2c09effe1731b6d0b2cf58f..3d1445633a02ad74664049d5acafcf3669864dad 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/charts/ChartController.java
@@ -1,6 +1,5 @@
 package de.deadlocker8.budgetmaster.charts;
 
-import de.deadlocker8.budgetmaster.categories.Category;
 import de.deadlocker8.budgetmaster.controller.BaseController;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
@@ -84,4 +83,35 @@ public class ChartController extends BaseController
 
 		return "redirect:/charts/manage";
 	}
+
+	@RequestMapping("/charts/{ID}/requestDelete")
+	public String requestDeleteChart(Model model, @PathVariable("ID") Integer ID)
+	{
+		if(!isDeletable(ID))
+		{
+			return "redirect:/charts/manage";
+		}
+
+		model.addAttribute("charts", chartService.getRepository().findAllByOrderByNameAsc());
+		model.addAttribute("currentChart", chartService.getRepository().getOne(ID));
+		model.addAttribute("settings", settingsService.getSettings());
+		return "charts/manage";
+	}
+
+	@RequestMapping(value = "/charts/{ID}/delete")
+	public String deleteChart(Model model, @PathVariable("ID") Integer ID)
+	{
+		if(isDeletable(ID))
+		{
+			chartService.getRepository().delete(ID);
+		}
+
+		return "redirect:/charts/manage";
+	}
+
+	private boolean isDeletable(Integer ID)
+	{
+		Chart chartToDelete = chartService.getRepository().getOne(ID);
+		return chartToDelete != null && chartToDelete.getType() == ChartType.CUSTOM;
+	}
 }
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index 80bd5ba2bd4122e5fd2932aff118dd0864fa79e8..a3c483b4a85022bf6304004e5d1af13e8c6af47c 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -93,6 +93,8 @@ info.button.account.delete=Konto und Buchungen l
 info.title.transaction.delete=Buchung l�schen
 info.text.transaction.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen?
 info.text.transaction.repeating.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen? <br>Hinweis: Es handelt sich um eine wiederholende Buchung. Beim L�schen dieser Buchung werden alle zugeh�rigen Wiederholungen ebenfalls gel�scht!
+info.title.chart.delete=Diagramm l�schen
+info.text.chart.delete=M�chtest du das Diagramm "{0}" wirklich unwiderruflich l�schen?
 
 info.title.database.delete=Datenbank l�schen
 info.header.text.database.delete=Soll die Datenbank wirklich unwiderruflich gel�scht werden?<br>Hinweis: Beim L�schen der Datenbank werden alle Buchungen, Kategorien und Konten unwiderruflich gel�scht.
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index 61f06b1a5a242fdd75d2794bba273f4fa2439e56..a0778df4704ee680382f13dd01c1cafbc27cac78 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -93,6 +93,8 @@ info.button.account.delete=Delete Account and Transactions
 info.title.transaction.delete=Delete Entry
 info.text.transaction.delete=Do you really want to delete the entry "{0}"? This can''t be undone.
 info.text.transaction.repeating.delete=Do you really want to delete the entry "{0}"? This can''t be undone.<br>Note: This transaction is a repeating transaction. Deleting this transaction will delete all related occurrences too!
+info.title.chart.delete=Delete Chart
+info.text.chart.delete=Do you really want to delete the chart "{0}"?
 
 info.title.database.delete=Delete Database
 info.header.text.database.delete=Do you really want to delete the database? This can''t be undone.<br>Note: Deleting the database will delete all transactions, categories and accounts permanently.
diff --git a/src/main/resources/static/js/charts.js b/src/main/resources/static/js/charts.js
new file mode 100644
index 0000000000000000000000000000000000000000..e9b6a10631647054fca0fc6d2e65401c81dcd28f
--- /dev/null
+++ b/src/main/resources/static/js/charts.js
@@ -0,0 +1,6 @@
+$( document ).ready(function() {
+    if($("#modalConfirmDelete").length)
+    {
+        $('#modalConfirmDelete').modal('open');
+    }
+});
\ No newline at end of file
diff --git a/src/main/resources/templates/charts/manage.ftl b/src/main/resources/templates/charts/manage.ftl
index 95bd0bc3ad96a3df6f59190f6d3aa05f88496666..a446156c4da39445089a09b5c6266af1c81fa03d 100644
--- a/src/main/resources/templates/charts/manage.ftl
+++ b/src/main/resources/templates/charts/manage.ftl
@@ -55,24 +55,16 @@
                 </div>
             </div>
 
-            <#if currentCategory??>
+            <#if currentChart??>
                 <!-- confirm delete modal -->
-                <div id="modalConfirmDelete" class="modal categoryDeleteModal background-color">
+                <div id="modalConfirmDelete" class="modal background-color">
                     <div class="modal-content">
-                        <h4>${locale.getString("info.title.category.delete")}</h4>
-                        <p>${locale.getString("info.text.category.delete", currentCategory.name)}</p>
-                        <p>${locale.getString("info.text.category.delete.move")}</p>
-
-                        <form name="DestinationCategory" id="formDestinationCategory" action="<@s.url '/categories/${currentCategory.ID?c}/delete'/>" method="post">
-                            <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
-                            <#import "../helpers/validation.ftl" as validation>
-                            <@newTransactionMacros.categorySelect availableCategories preselectedCategory "col s12 m12 l8 offset-l2" locale.getString("info.title.category.delete.move")/>
-                        </form>
+                        <h4>${locale.getString("info.title.chart.delete")}</h4>
+                        <p>${locale.getString("info.text.chart.delete", currentChart.getName())}</p>
                     </div>
-
                     <div class="modal-footer background-color">
-                        <a href="<@s.url '/categories'/>" class="modal-action modal-close waves-effect waves-light red btn-flat white-text">${locale.getString("cancel")}</a>
-                        <a id="buttonDeleteCategory" class="modal-action modal-close waves-effect waves-light green btn-flat white-text">${locale.getString("delete")}</a>
+                        <a href="<@s.url '/charts/manage'/>" class="modal-action modal-close waves-effect waves-light red btn-flat white-text">${locale.getString("cancel")}</a>
+                        <a href="<@s.url '/charts/${currentChart.getID()?c}/delete'/>" class="modal-action modal-close waves-effect waves-light green btn-flat white-text">${locale.getString("info.title.chart.delete")}</a>
                     </div>
                 </div>
             </#if>
@@ -80,5 +72,6 @@
 
         <#import "../helpers/scripts.ftl" as scripts>
         <@scripts.scripts/>
+        <script src="<@s.url '/js/charts.js'/>"></script>
     </body>
 </html>
\ No newline at end of file