diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
index b802a127fcea6a4860e53580fc84a9c9c33d7a33..ffac192877d9146d6c8523ab495e3b4e149a2938 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/Transaction.java
@@ -232,6 +232,23 @@ public class Transaction implements TransactionBase
 		return isAccountEditable && isTransferAccountEditable;
 	}
 
+	/**
+	 * States whether this transaction is allowed to be used to create a new transaction
+	 * and prefill all inputs with the data from this transaction.
+	 */
+	public boolean isAllowedToFillNewTransaction()
+	{
+		boolean isRestCategory = category.getType().equals(CategoryType.REST);
+		if(isRestCategory)
+		{
+			return false;
+		}
+
+		boolean isAccountEditable = account.getAccountState().equals(AccountState.FULL_ACCESS);
+		boolean isAccountReadOnly = account.getAccountState().equals(AccountState.READ_ONLY);
+		return isAccountEditable || isAccountReadOnly;
+	}
+
 	@Override
 	public String toString()
 	{
diff --git a/src/main/resources/templates/transactions/transactionsMacros.ftl b/src/main/resources/templates/transactions/transactionsMacros.ftl
index 0f79a9d611ba0f5fce0fa89efc86d005da379eee..98519d63fa266aa6da69a57c123e0f02c6d3fddb 100644
--- a/src/main/resources/templates/transactions/transactionsMacros.ftl
+++ b/src/main/resources/templates/transactions/transactionsMacros.ftl
@@ -53,6 +53,8 @@
             <#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 button-request-delete-transaction" isDataUrl=true/>
+            </#if>
+            <#if transaction.isAllowedToFillNewTransaction()>
                 <@header.buttonFlat url='/transactions/' + transaction.ID?c + '/newFromExisting' icon='content_copy' localizationKey='' classes="no-padding text-default button-new-from-existing"/>
             </#if>
         </div>