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 59b29e411407fb3b5ba3432c9e83e1e1bfa5c626..e5c8749e90d394f78802cab96282832f5b437f44 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
@@ -91,6 +91,7 @@ public class TransactionImportController extends BaseController
 		}
 
 		model.addAttribute(ModelAttributes.CATEGORIES, categoryService.getAllEntitiesAsc());
+		model.addAttribute(TransactionModelAttributes.SUGGESTIONS_JSON, transactionService.getNameSuggestionsJson());
 		model.addAttribute(ModelAttributes.CSV_IMPORT_SETTINGS, csvImportSettingsService.getCsvImportSettings());
 
 		return ReturnValues.TRANSACTION_IMPORT;
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
index 7580ed7746c15f951d2e2e2dc517a9faab80cb80..a54b1cdb1bbd97133d69f91ac5fc81e2c033a6b9 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionService.java
@@ -295,12 +295,16 @@ public class TransactionService implements Resettable
 		model.addAttribute(TransactionModelAttributes.CATEGORIES, categoryService.getAllEntitiesAsc());
 		model.addAttribute(TransactionModelAttributes.ACCOUNTS, accounts);
 		model.addAttribute(TransactionModelAttributes.TRANSACTION, item);
+		model.addAttribute(TransactionModelAttributes.SUGGESTIONS_JSON, getNameSuggestionsJson());
+	}
 
+	public String getNameSuggestionsJson()
+	{
 		final List<Transaction> allByOrderByDateDesc = getRepository().findAllByOrderByDateDesc();
 		final List<String> nameSuggestions = allByOrderByDateDesc.stream()
 				.map(Transaction::getName)
 				.distinct()
 				.toList();
-		model.addAttribute(TransactionModelAttributes.SUGGESTIONS_JSON, GSON.toJson(nameSuggestions));
+		return  GSON.toJson(nameSuggestions);
 	}
 }
diff --git a/BudgetMasterServer/src/main/resources/static/js/transactionImport.js b/BudgetMasterServer/src/main/resources/static/js/transactionImport.js
index 5c048b1628262116d3bd3d169d80141a70486a57..9dbca023839451a6c232f91f4afce87a775dc76f 100644
--- a/BudgetMasterServer/src/main/resources/static/js/transactionImport.js
+++ b/BudgetMasterServer/src/main/resources/static/js/transactionImport.js
@@ -12,10 +12,24 @@ $(document).ready(function()
         order: [[1, 'desc']],
         info: false,
         scrollX: true,
-        scrollY: true,
+        scrollY: false,
         columnDefs: [
             { orderable: false, targets:  5}
         ],
         language: { search: '' , searchPlaceholder: localizedSearch},
     });
+
+    if(transactionNameSuggestions !== undefined)
+    {
+        let nameElements = document.querySelectorAll('.autocomplete');
+        let autoCompleteInstances = M.Autocomplete.init(nameElements, {
+            data: transactionNameSuggestions,
+        });
+
+        // prevent tab traversal for dropdown (otherwise "tab" needs to be hit twice to jump from name input to amount input)
+        for(let i = 0; i < autoCompleteInstances.length; i++)
+        {
+            autoCompleteInstances[i].dropdown.dropdownEl.tabIndex = -1;
+        }
+    }
 });
\ No newline at end of file
diff --git a/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl b/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl
index a6bfaec7f38b21c76b9e36d58537df15180667b8..6e67af6474a4fc63c12c4cef4d5d35825ec31df9 100644
--- a/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl
+++ b/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl
@@ -62,6 +62,10 @@
         </div>
     </div>
 
+    <@insertNameSuggestions/>
+</#macro>
+
+<#macro insertNameSuggestions>
     <script>
         transactionNameSuggestions = {};
         var nameSuggestions = ${suggestionsJSON};
diff --git a/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
index f963b0f5b29344aca07f7ce2091feb61235f8e06..7d9ee3d8c8ed6784da038fb2b720c59ff7ff3772 100644
--- a/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
+++ b/BudgetMasterServer/src/main/resources/templates/transactions/transactionImport.ftl
@@ -15,6 +15,7 @@
         <@navbar.navbar "importCSV" settings/>
 
         <#import "transactionsMacros.ftl" as transactionMacros>
+        <#import "newTransactionMacros.ftl" as newTransactionMacros>
         <#import "../helpers/customSelectMacros.ftl" as customSelectMacros>
 
         <main>
@@ -246,14 +247,14 @@
 
             <tbody>
                 <#list csvTransactions as csvTransaction>
-                    <@renderCsvRow csvTransaction csvTransaction?index/>
+                    <@renderCsvTransaction csvTransaction csvTransaction?index/>
                 </#list>
             </tbody>
         </table>
     </div>
 </#macro>
 
-<#macro renderCsvRow csvTransaction index>
+<#macro renderCsvTransaction csvTransaction index>
     <tr class="transaction-import-row <#if csvTransaction.getStatus().name() == 'SKIPPED'>transaction-import-row-skipped</#if>">
         <form name="NewTransactionInPlace" method="POST" action="<@s.url '/transactionImport/' + index + '/newTransactionInPlace'/>">
             <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
@@ -264,7 +265,7 @@
             </td>
             <td data-order="${csvTransaction.getName()}" data-search="${csvTransaction.getName()}">
                 <div class="input-field no-margin-top no-margin-bottom">
-                    <input class="no-margin-bottom" type="text" name="name" required value="${csvTransaction.getName()}" <#if csvTransaction.getStatus().name() == 'SKIPPED'>disabled</#if>>
+                    <input class="no-margin-bottom autocomplete" type="text" name="name" autocomplete="off" required value="${csvTransaction.getName()}" <#if csvTransaction.getStatus().name() == 'SKIPPED'>disabled</#if>>
                 </div>
             </td>
             <td data-order="${csvTransaction.getDescription()}" data-search="${csvTransaction.getDescription()}">
@@ -302,6 +303,8 @@
             </td>
         </form>
     </tr>
+
+    <@newTransactionMacros.insertNameSuggestions/>
 </#macro>
 
 <#macro showColumnSettingsErrors>