diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
index 915c815452b2131236ae6f1b63614a34a90b21d5..0e1315ae02760d90934916c6d9b2b775c30a65c0 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java
@@ -18,6 +18,8 @@ import de.deadlocker8.budgetmaster.services.DateFormatStyle;
 import de.deadlocker8.budgetmaster.services.DateService;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
+import de.deadlocker8.budgetmaster.transactions.csvimport.CsvTransaction;
+import de.deadlocker8.budgetmaster.transactions.csvimport.CsvTransactionStatus;
 import de.deadlocker8.budgetmaster.utils.Mappings;
 import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException;
 import de.deadlocker8.budgetmaster.utils.WebRequestUtils;
@@ -263,8 +265,12 @@ public class TransactionController extends BaseController
 		}
 
 		// redirect back to csv import if import is active
-		if(request.getAttribute(TransactionImportController.RequestAttributeNames.CSV_TRANSACTIONS, RequestAttributes.SCOPE_SESSION) != null)
+		final Object currentCsvTransaction = request.getAttribute(TransactionImportController.RequestAttributeNames.CURRENT_CSV_TRANSACTION, RequestAttributes.SCOPE_SESSION);
+		if(currentCsvTransaction != null)
 		{
+			final CsvTransaction csvTransaction = (CsvTransaction) currentCsvTransaction;
+			csvTransaction.setStatus(CsvTransactionStatus.IMPORTED);
+			request.removeAttribute(TransactionImportController.RequestAttributeNames.CURRENT_CSV_TRANSACTION, RequestAttributes.SCOPE_SESSION);
 			return ReturnValues.REDIRECT_IMPORT;
 		}
 
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
index e4d62d73230c71ca65c21b2562b6f847948f500b..8611248ef2a3452aae3e0da71bac5fbce44061e5 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
@@ -38,7 +38,7 @@ public class TransactionImportController extends BaseController
 
 	private static class ReturnValues
 	{
-		public static final String TRANSACTION_IMPORT = "TRANSACTIONS/transactionImport";
+		public static final String TRANSACTION_IMPORT = "transactions/transactionImport";
 		public static final String REDIRECT_IMPORT = "redirect:/transactionImport";
 		public static final String REDIRECT_CANCEL = "redirect:/transactionImport/cancel";
 		public static final String NEW_TRANSACTION_NORMAL = "transactions/newTransactionNormal";
@@ -56,7 +56,7 @@ public class TransactionImportController extends BaseController
 		public static final String CSV_TRANSACTIONS = "csvTransactions";
 		public static final String ERROR_UPLOAD = "errorUpload";
 		public static final String ERRORS_COLUMN_SETTINGS = "errorsColumnSettings";
-
+		public static final String CURRENT_CSV_TRANSACTION = "currentCsvTransaction";
 	}
 
 	private final TransactionService transactionService;
@@ -78,6 +78,8 @@ public class TransactionImportController extends BaseController
 	@GetMapping
 	public String transactionImport(WebRequest request, Model model)
 	{
+		request.removeAttribute(RequestAttributeNames.CURRENT_CSV_TRANSACTION, RequestAttributes.SCOPE_SESSION);
+
 		if(request.getAttribute(RequestAttributeNames.CSV_IMPORT, RequestAttributes.SCOPE_SESSION) == null)
 		{
 			model.addAttribute(RequestAttributeNames.CSV_IMPORT, new CsvImport(null, ";", StandardCharsets.UTF_8.name(), 0));
@@ -239,7 +241,7 @@ public class TransactionImportController extends BaseController
 		}
 
 		final CsvTransaction csvTransaction = transactionOptional.get();
-		csvTransaction.setStatus(CsvTransactionStatus.IMPORTED);
+		request.setAttribute(RequestAttributeNames.CURRENT_CSV_TRANSACTION, csvTransaction, RequestAttributes.SCOPE_SESSION);
 
 		final Transaction newTransaction = createTransactionFromCsvTransaction(csvTransaction);
 
@@ -297,6 +299,7 @@ public class TransactionImportController extends BaseController
 		request.removeAttribute(RequestAttributeNames.CSV_TRANSACTIONS, RequestAttributes.SCOPE_SESSION);
 		request.removeAttribute(RequestAttributeNames.ERROR_UPLOAD, RequestAttributes.SCOPE_SESSION);
 		request.removeAttribute(RequestAttributeNames.ERRORS_COLUMN_SETTINGS, RequestAttributes.SCOPE_SESSION);
+		request.removeAttribute(RequestAttributeNames.CURRENT_CSV_TRANSACTION, RequestAttributes.SCOPE_SESSION);
 	}
 
 	private Optional<CsvTransaction> getTransactionByIndex(WebRequest request, Integer index)
diff --git a/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl b/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl
index cce06b1ae5da9e973a564012170341b298069194..a6bfaec7f38b21c76b9e36d58537df15180667b8 100644
--- a/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl
+++ b/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl
@@ -349,7 +349,12 @@
 </#macro>
 
 <#macro buttonCancel cancelURL>
-    <@header.buttonLink url=cancelURL icon='clear' localizationKey='cancel' id='button-cancel-save-transaction' color='red'/>
+    <#assign url=cancelURL/>
+    <#if currentCsvTransaction??>
+        <#assign url='/transactionImport'/>
+    </#if>
+
+    <@header.buttonLink url=url icon='clear' localizationKey='cancel' id='button-cancel-save-transaction' color='red'/>
 </#macro>
 
 <#macro buttonSave allowEmptyAmount>