diff --git a/core/src/main/java/bisq/core/trade/Trade.java b/core/src/main/java/bisq/core/trade/Trade.java
index b16415b450..9ca4204e9c 100644
--- a/core/src/main/java/bisq/core/trade/Trade.java
+++ b/core/src/main/java/bisq/core/trade/Trade.java
@@ -75,7 +75,6 @@ import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jetbrains.annotations.NotNull;
-
 import javax.annotation.Nullable;
 
 import static com.google.common.base.Preconditions.checkNotNull;
@@ -725,6 +724,7 @@ public abstract class Trade implements Tradable, Model {
         // gather relevant info
         XmrWalletService walletService = processModel.getProvider().getXmrWalletService();
         MoneroWallet multisigWallet = walletService.getMultisigWallet(this.getId());
+        if (multisigWallet.isMultisigImportNeeded()) throw new RuntimeException("Cannot create payout tx because multisig import is needed");
         String sellerPayoutAddress = this.getSeller().getPayoutAddressString();
         String buyerPayoutAddress = this.getBuyer().getPayoutAddressString();
         Preconditions.checkNotNull(sellerPayoutAddress, "Seller payout address must not be null");
diff --git a/desktop/src/main/java/bisq/desktop/main/market/offerbook/OfferBookChartViewModel.java b/desktop/src/main/java/bisq/desktop/main/market/offerbook/OfferBookChartViewModel.java
index 544406c2f2..dd3bd76773 100644
--- a/desktop/src/main/java/bisq/desktop/main/market/offerbook/OfferBookChartViewModel.java
+++ b/desktop/src/main/java/bisq/desktop/main/market/offerbook/OfferBookChartViewModel.java
@@ -32,7 +32,7 @@ import bisq.desktop.util.CurrencyList;
 import bisq.desktop.util.CurrencyListItem;
 import bisq.desktop.util.DisplayUtils;
 import bisq.desktop.util.GUIUtil;
-
+import bisq.common.UserThread;
 import bisq.core.account.witness.AccountAgeWitnessService;
 import bisq.core.locale.CurrencyUtil;
 import bisq.core.locale.GlobalSettings;
@@ -125,17 +125,19 @@ class OfferBookChartViewModel extends ActivatableViewModel {
 
         offerBookListItems = offerBook.getOfferBookListItems();
         offerBookListItemsListener = c -> {
-            c.next();
-            if (c.wasAdded() || c.wasRemoved()) {
-                ArrayList<OfferBookListItem> list = new ArrayList<>(c.getRemoved());
-                list.addAll(c.getAddedSubList());
-                if (list.stream()
-                        .map(OfferBookListItem::getOffer)
-                        .anyMatch(e -> e.getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode())))
-                    updateChartData();
-            }
+            UserThread.execute(() -> {
+                c.next();
+                if (c.wasAdded() || c.wasRemoved()) {
+                    ArrayList<OfferBookListItem> list = new ArrayList<>(c.getRemoved());
+                    list.addAll(c.getAddedSubList());
+                    if (list.stream()
+                            .map(OfferBookListItem::getOffer)
+                            .anyMatch(e -> e.getCurrencyCode().equals(selectedTradeCurrencyProperty.get().getCode())))
+                        updateChartData();
+                }
 
-            fillTradeCurrencies();
+                fillTradeCurrencies();
+            });
         };
 
         currenciesUpdatedListener = (observable, oldValue, newValue) -> {
diff --git a/desktop/src/main/java/bisq/desktop/main/market/spread/SpreadViewModel.java b/desktop/src/main/java/bisq/desktop/main/market/spread/SpreadViewModel.java
index c03ec94a03..f7e512c1d3 100644
--- a/desktop/src/main/java/bisq/desktop/main/market/spread/SpreadViewModel.java
+++ b/desktop/src/main/java/bisq/desktop/main/market/spread/SpreadViewModel.java
@@ -22,7 +22,7 @@ import bisq.desktop.main.offer.offerbook.OfferBook;
 import bisq.desktop.main.offer.offerbook.OfferBookListItem;
 import bisq.desktop.main.overlays.popups.Popup;
 import bisq.desktop.util.GUIUtil;
-
+import bisq.common.UserThread;
 import bisq.core.locale.Res;
 import bisq.core.monetary.Altcoin;
 import bisq.core.monetary.Price;
@@ -89,7 +89,7 @@ class SpreadViewModel extends ActivatableViewModel {
         this.formatter = formatter;
         includePaymentMethod = false;
         offerBookListItems = offerBook.getOfferBookListItems();
-        listChangeListener = c -> update(offerBookListItems);
+        listChangeListener = c -> UserThread.execute(() -> update(offerBookListItems));
     }
 
     public String getKeyColumnName() {
diff --git a/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookViewModel.java b/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookViewModel.java
index 098240a280..01e2ab337b 100644
--- a/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookViewModel.java
+++ b/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookViewModel.java
@@ -87,7 +87,6 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;