diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
index 2668621bb91f488237d2287a410be65ba6468a80..b3c68ce7cfe3a6bb3d666bfd0c699f431a3597c6 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
@@ -86,9 +86,9 @@ public class TransactionController extends BaseController
 
 		DateTime date = dateService.getDateTimeFromCookie(cookieDate);
 		prepareModelTransactions(filterHelpers.getFilterConfiguration(request), model, date);
-		model.addAttribute("currentTransaction", transactionService.getRepository().getOne(ID));
+		model.addAttribute("transactionToDelete", transactionService.getRepository().getOne(ID));
 
-		return "transactions/transactions";
+		return "transactions/deleteTransactionModal";
 	}
 
 	private void prepareModelTransactions(FilterConfiguration filterConfiguration, Model model, DateTime date)
diff --git a/src/main/resources/static/js/transactions.js b/src/main/resources/static/js/transactions.js
index 8c0c7d27489e02b720b1b60e98e61a74949a9271..9a4bc75c8bb102a4f793005d8009609c5eb94c19 100644
--- a/src/main/resources/static/js/transactions.js
+++ b/src/main/resources/static/js/transactions.js
@@ -1,7 +1,5 @@
 $(document).ready(function()
 {
-    $('#modalConfirmDelete').modal('open');
-
     // open filter modal if corresponding anchor is in url (originating from hotkeys.js)
     if(window.location.href.endsWith('#modalFilter'))
     {
@@ -260,6 +258,11 @@ $(document).ready(function()
             scrollTop: $(highlightedLarge).offset().top
         }, 500);
     }
+
+    $('.button-request-delete-transaction').click(function()
+    {
+        fetchAndShowModalContent(this.dataset.url, '#deleteModalContainerOnDemand', '#modalConfirmDelete', function(){});
+    });
 });
 
 function isHidden(el)
diff --git a/src/main/resources/templates/transactions/deleteTransactionModal.ftl b/src/main/resources/templates/transactions/deleteTransactionModal.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..847e92f2eff19c92012b9058bd47abfe1e3280c0
--- /dev/null
+++ b/src/main/resources/templates/transactions/deleteTransactionModal.ftl
@@ -0,0 +1,11 @@
+<#global locale = static["de.thecodelabs.utils.util.Localization"]>
+<#import "/spring.ftl" as s>
+<#import "../helpers/header.ftl" as header>
+
+<@header.modalConfirmDelete title=locale.getString("info.title.transaction.delete") confirmUrl='/transactions' itemId=transactionToDelete.getID() confirmButtonTextKey='delete'>
+    <#if transactionToDelete.isRepeating()>
+        <p>${locale.getString("info.text.transaction.repeating.delete", transactionToDelete.name)}</p>
+    <#else>
+        <p>${locale.getString("info.text.transaction.delete", transactionToDelete.name)}</p>
+    </#if>
+</@header.modalConfirmDelete>
\ No newline at end of file
diff --git a/src/main/resources/templates/transactions/transactions.ftl b/src/main/resources/templates/transactions/transactions.ftl
index 75eaec1aad13c6938bb96f34c0d6bac710ff14a6..28a841526993ddb3e77934d81f6abccf3425a31f 100644
--- a/src/main/resources/templates/transactions/transactions.ftl
+++ b/src/main/resources/templates/transactions/transactions.ftl
@@ -91,15 +91,7 @@
                 </@header.content>
             </div>
 
-            <#if currentTransaction??>
-                <@header.modalConfirmDelete title=locale.getString("info.title.transaction.delete") confirmUrl='/transactions' cancelUrlBase='/transactions' itemId=currentTransaction.getID() confirmButtonTextKey='delete'>
-                    <#if currentTransaction.isRepeating()>
-                        <p>${locale.getString("info.text.transaction.repeating.delete", currentTransaction.name)}</p>
-                    <#else>
-                        <p>${locale.getString("info.text.transaction.delete", currentTransaction.name)}</p>
-                    </#if>
-                </@header.modalConfirmDelete>
-            </#if>
+            <div id="deleteModalContainerOnDemand"></div>
 
             <@filterMacros.filterModal filterConfiguration/>
         </main>
diff --git a/src/main/resources/templates/transactions/transactionsMacros.ftl b/src/main/resources/templates/transactions/transactionsMacros.ftl
index e61dafcf7a1b4c914abb35f464fa753146099787..70c6acb1e0f9fb1ba5c288b6ea5c6ec92cfd54ee 100644
--- a/src/main/resources/templates/transactions/transactionsMacros.ftl
+++ b/src/main/resources/templates/transactions/transactionsMacros.ftl
@@ -49,7 +49,7 @@
         <div class="col s8 l2 xl1 right-align transaction-buttons no-wrap">
             <#if transaction.isEditable()>
                 <@header.buttonFlat url='/transactions/' + transaction.ID?c + '/edit' icon='edit' localizationKey='' classes="no-padding text-default"/>
-                <@header.buttonFlat url='/transactions/' + transaction.ID?c + '/requestDelete' icon='delete' localizationKey='' classes="no-padding text-default"/>
+                <@header.buttonFlat url='/transactions/' + transaction.ID?c + '/requestDelete' icon='delete' localizationKey='' classes="no-padding text-default button-request-delete-transaction" isDataUrl=true/>
             </#if>
         </div>
 </#macro>