diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
index 839782add21f503bfbfcce9620a96eee0fc9f73d..373701e24f5ff2b9a0c0188003af11d61531e5f1 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/AccountController.java
@@ -42,14 +42,14 @@ public class AccountController extends BaseController
 	@RequestMapping("/accounts")
 	public String accounts(HttpServletRequest request, Model model)
 	{
-		model.addAttribute("accounts", accountRepository.findAllByOrderByNameAsc());
+		model.addAttribute("accounts", accountService.getAllAccountsAsc());
 		return "accounts/accounts";
 	}
 
 	@RequestMapping("/accounts/{ID}/requestDelete")
 	public String requestDeleteAccount(Model model, @PathVariable("ID") Integer ID)
 	{
-		model.addAttribute("accounts", accountRepository.findAllByOrderByNameAsc());
+		model.addAttribute("accounts", accountService.getAllAccountsAsc());
 		model.addAttribute("currentAccount", accountRepository.getOne(ID));
 		return "accounts/accounts";
 	}
@@ -63,7 +63,7 @@ public class AccountController extends BaseController
 			return "redirect:/accounts";
 		}
 
-		model.addAttribute("accounts", accountRepository.findAllByOrderByNameAsc());
+		model.addAttribute("accounts", accountService.getAllAccountsAsc());
 		model.addAttribute("currentAccount", accountRepository.getOne(ID));
 		model.addAttribute("accountNotDeletable", true);
 		return "accounts/accounts";
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
index bfaf4b68df5d6ae950923dbf992ed0711cdbd7b6..d9a72ea1b8a158e4c2c7f41b5486e3670391677c 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/SettingsController.java
@@ -7,8 +7,8 @@ import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.database.DatabaseParser;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList;
 import de.deadlocker8.budgetmaster.entities.Settings;
-import de.deadlocker8.budgetmaster.repositories.AccountRepository;
 import de.deadlocker8.budgetmaster.repositories.SettingsRepository;
+import de.deadlocker8.budgetmaster.services.AccountService;
 import de.deadlocker8.budgetmaster.services.DatabaseService;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.services.ImportService;
@@ -58,7 +58,7 @@ public class SettingsController extends BaseController
 	private DatabaseService databaseService;
 
 	@Autowired
-	private AccountRepository accountRepository;
+	private AccountService accountService;
 
 	@Autowired
 	private ImportService importService;
@@ -236,7 +236,7 @@ public class SettingsController extends BaseController
 	public String openAccountMatcher(WebRequest request, Model model)
 	{
 		model.addAttribute("database", request.getAttribute("database", WebRequest.SCOPE_SESSION));
-		model.addAttribute("availableAccounts", accountRepository.findAllByOrderByNameAsc());
+		model.addAttribute("availableAccounts", accountService.getAllAccountsAsc());
 		return "import";
 	}
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
index e94dae0b48dcd3e8150e532a1de5eb7a2b619142..4af15b79dcbf511883059903308ae160705b73e2 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/TransactionController.java
@@ -1,13 +1,15 @@
 package de.deadlocker8.budgetmaster.controller;
 
-import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.entities.Settings;
 import de.deadlocker8.budgetmaster.entities.Tag;
+import de.deadlocker8.budgetmaster.entities.Transaction;
 import de.deadlocker8.budgetmaster.repeating.RepeatingOption;
 import de.deadlocker8.budgetmaster.repeating.RepeatingTransactionUpdater;
 import de.deadlocker8.budgetmaster.repeating.endoption.*;
-import de.deadlocker8.budgetmaster.repeating.modifier.*;
+import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifier;
+import de.deadlocker8.budgetmaster.repeating.modifier.RepeatingModifierType;
 import de.deadlocker8.budgetmaster.repositories.*;
+import de.deadlocker8.budgetmaster.services.AccountService;
 import de.deadlocker8.budgetmaster.services.HelpersService;
 import de.deadlocker8.budgetmaster.services.TransactionService;
 import de.deadlocker8.budgetmaster.utils.ResourceNotFoundException;
@@ -37,7 +39,7 @@ public class TransactionController extends BaseController
 	private CategoryRepository categoryRepository;
 
 	@Autowired
-	private AccountRepository accountRepository;
+	private AccountService accountService;
 
 	@Autowired
 	private SettingsRepository settingsRepository;
@@ -113,7 +115,7 @@ public class TransactionController extends BaseController
 		Transaction emptyTransaction = new Transaction();
 		model.addAttribute("currentDate", date);
 		model.addAttribute("categories", categoryRepository.findAllByOrderByNameAsc());
-		model.addAttribute("accounts", accountRepository.findAllByOrderByNameAsc());
+		model.addAttribute("accounts", accountService.getAllAccountsAsc());
 		model.addAttribute("transaction", emptyTransaction);
 		return "transactions/newTransaction";
 	}
@@ -195,7 +197,7 @@ public class TransactionController extends BaseController
 			model.addAttribute("error", bindingResult);
 			model.addAttribute("currentDate", date);
 			model.addAttribute("categories", categoryRepository.findAllByOrderByNameAsc());
-			model.addAttribute("accounts", accountRepository.findAllByOrderByNameAsc());
+			model.addAttribute("accounts", accountService.getAllAccountsAsc());
 			model.addAttribute("transaction", transaction);
 			return "transactions/newTransaction";
 		}
@@ -222,7 +224,7 @@ public class TransactionController extends BaseController
 		DateTime date = getDateTimeFromCookie(cookieDate);
 		model.addAttribute("currentDate", date);
 		model.addAttribute("categories", categoryRepository.findAllByOrderByNameAsc());
-		model.addAttribute("accounts", accountRepository.findAllByOrderByNameAsc());
+		model.addAttribute("accounts", accountService.getAllAccountsAsc());
 		model.addAttribute("transaction", transaction);
 		return "transactions/newTransaction";
 	}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java b/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java
index f36fab75fca24653d5ff12c27e434231cba5693f..9cea8a0b78400910e8c8fa1bc617f5bdafa1992a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/repositories/AccountRepository.java
@@ -9,7 +9,7 @@ import java.util.List;
 
 public interface AccountRepository extends JpaRepository<Account, Integer>
 {
-	List<Account> findAllByOrderByNameAsc();
+	List<Account> findAllByTypeOrderByNameAsc(AccountType accountType);
 
 	Account findByName(String name);
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
index c81472a47b9805b0cfece4fd3311d5e8f1f37048..119454e300dc56db2376d837f7ac7b5d358b9737 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/AccountService.java
@@ -39,6 +39,13 @@ public class AccountService implements Resetable
 		return accountRepository;
 	}
 
+	public List<Account> getAllAccountsAsc()
+	{
+		List<Account> accounts = accountRepository.findAllByType(AccountType.ALL);
+		accounts.addAll(accountRepository.findAllByTypeOrderByNameAsc(AccountType.CUSTOM));
+		return accounts;
+	}
+
 	public void deleteAccount(int ID)
 	{
 		Account accountToDelete = accountRepository.findOne(ID);
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
index 359c721433dff1cf952384f255af0a2efbda5977..dcc66b8805e53cefff6ab985e2e1a22921505efd 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/HelpersService.java
@@ -196,7 +196,7 @@ public class HelpersService
 
 	public List<Account> getAllAccounts()
 	{
-		return accountRepository.findAllByOrderByNameAsc();
+		return accountService.getAllAccountsAsc();
 	}
 
 	public Account getCurrentAccount()