diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountRepository.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountRepository.java
index 3536d8fb2fdfc4c09063e9cad1b1f8c62a32d76b..f9a7747e5606f8deb42250f6df948ea2c5dc41b8 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountRepository.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountRepository.java
@@ -15,6 +15,8 @@ public interface AccountRepository extends JpaRepository<Account, Integer>
 
 	List<Account> findAllByType(AccountType accountType);
 
+	List<Account> findAllByTypeAndAccountStateOrderByNameAsc(AccountType accountType, AccountState accountState);
+
 	Account findByIsSelected(boolean isSelected);
 
 	Account findByIsDefault(boolean isDefault);
diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
index cd7624f8a1bc0d64deac0560ed646df01631a7c7..525b86779d79edc6fc70eb0cab9600de4d92a9ec 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java
@@ -10,6 +10,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.text.MessageFormat;
 import java.util.ArrayList;
@@ -50,7 +51,7 @@ public class AccountService implements Resetable
 	public List<Account> getAllActivatedAccountsAsc()
 	{
 		List<Account> accounts = accountRepository.findAllByType(AccountType.ALL);
-		accounts.addAll(accountRepository.findAllByTypeAndIsReadOnlyOrderByNameAsc(AccountType.CUSTOM, false));
+		accounts.addAll(accountRepository.findAllByTypeAndAccountStateOrderByNameAsc(AccountType.CUSTOM, AccountState.FULL_ACCESS));
 		return accounts;
 	}
 
@@ -72,7 +73,7 @@ public class AccountService implements Resetable
 		// set new default if necessary
 		if(accountToDelete.isDefault())
 		{
-			List<Account> accounts = accountRepository.findAllByType(AccountType.CUSTOM);
+			List<Account> accounts = accountRepository.findAllByTypeAndAccountStateOrderByNameAsc(AccountType.CUSTOM, AccountState.FULL_ACCESS);
 			accounts.remove(accountToDelete);
 			setAsDefaultAccount(accounts.get(0).getID());
 		}
@@ -92,6 +93,7 @@ public class AccountService implements Resetable
 	}
 
 	@Override
+	@Transactional
 	public void createDefaults()
 	{
 		if(accountRepository.findAll().isEmpty())
@@ -111,7 +113,7 @@ public class AccountService implements Resetable
 		Account defaultAccount = accountRepository.findByIsDefault(true);
 		if(defaultAccount == null)
 		{
-			Account account = accountRepository.findAllByType(AccountType.CUSTOM).get(0);
+			Account account = accountRepository.findAllByTypeAndAccountStateOrderByNameAsc(AccountType.CUSTOM, AccountState.FULL_ACCESS).get(0);
 			setAsDefaultAccount(account.getID());
 		}
 		setAsDefaultAccount(accountRepository.findByIsDefault(true).getID());
@@ -148,6 +150,7 @@ public class AccountService implements Resetable
 		}
 	}
 
+	@Transactional
 	public void selectAccount(int ID)
 	{
 		deselectAllAccounts();
@@ -170,6 +173,7 @@ public class AccountService implements Resetable
 		}
 	}
 
+	@Transactional
 	public void setAsDefaultAccount(int ID)
 	{
 		Optional<Account> accountToSelectOptional = accountRepository.findById(ID);
@@ -190,7 +194,8 @@ public class AccountService implements Resetable
 		accountRepository.save(accountToSelect);
 	}
 
-	private void unsetDefaultForAllAccounts()
+	@Transactional
+	public void unsetDefaultForAllAccounts()
 	{
 		List<Account> accounts = accountRepository.findAll();
 		for(Account currentAccount : accounts)
diff --git a/src/main/resources/templates/accounts/accounts.ftl b/src/main/resources/templates/accounts/accounts.ftl
index 930563cb484a6b7c4ea4b1b65b697a689a133b56..51d9fa6b381f97e0d899e847e528f2a8a09722fc 100644
--- a/src/main/resources/templates/accounts/accounts.ftl
+++ b/src/main/resources/templates/accounts/accounts.ftl
@@ -28,17 +28,14 @@
                                 <tr class="account-overview-row">
                                     <td>
                                         <#if account.getAccountState().name() == "READ_ONLY">
-                                            <#assign toolTipText = locale.getString("account.tooltip.readonly.activate")/>
-                                            <#assign lockIcon = '<i class="fas fa-lock"></i>'/>
                                             <div class="placeholder-icon"></div>
+                                            <i class="fas fa-lock"></i>
+                                        <#elseif account.getAccountState().name() == "HIDDEN">
+                                            <div class="placeholder-icon"></div>
+                                            <i class="far fa-eye-slash"></i>
                                         <#else>
-                                            <#assign toolTipText = locale.getString("account.tooltip.readonly.deactivate")/>
-                                            <#assign lockIcon = '<i class="fas fa-lock-open"></i>'/>
                                             <a href="<@s.url '/accounts/${account.getID()?c}/setAsDefault'/>" class="btn-flat no-padding text-default tooltipped" data-position="left" data-tooltip="${locale.getString("account.tooltip.default")}"><i class="material-icons left"><#if account.isDefault()>star<#else>star_border</#if></i></a>
-                                        </#if>
-
-                                        <#if !account.isDefault()>
-                                            <a href="<@s.url '/accounts/${account.getID()?c}/toggleReadOnly'/>" class="btn-flat no-padding text-default tooltipped" data-position="right" data-tooltip="${toolTipText}">${lockIcon}</a>
+                                            <i class="fas fa-edit"></i>
                                         </#if>
                                     </td>
                                     <td><#if account.getIcon()??><img src="${account.getIcon().getBase64EncodedImage()}" class="account-icon"/></#if></td>