diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java
index 948aae921787851ecca458901e7e96ba01623de6..6524c1835d8e65102b9e06a5835488cd44e085a1 100644
--- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java
+++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java
@@ -30,6 +30,7 @@
 import javax.swing.JPanel;
 import org.openide.util.NbBundle.Messages;
 import org.openide.util.lookup.ServiceProvider;
+import org.sleuthkit.autopsy.coreutils.ThreadConfined;
 import org.sleuthkit.autopsy.texttranslation.TextTranslator;
 import org.sleuthkit.autopsy.texttranslation.TranslationConfigException;
 import org.sleuthkit.autopsy.texttranslation.TranslationException;
@@ -46,7 +47,7 @@ public class BingTranslator implements TextTranslator {
     //https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support
     private static final String BASE_URL = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=";
     private static final int MAX_STRING_LENGTH = 5000;
-    private final BingTranslatorSettingsPanel settingsPanel;
+    private BingTranslatorSettingsPanel settingsPanel;
     private final BingTranslatorSettings settings = new BingTranslatorSettings();
     // This sends messages to Microsoft.
     private final OkHttpClient CLIENT = new OkHttpClient();
@@ -55,11 +56,11 @@ public class BingTranslator implements TextTranslator {
      * Create a Bing Translator
      */
     public BingTranslator() {
-        settingsPanel = new BingTranslatorSettingsPanel(settings.getAuthenticationKey(), settings.getTargetLanguageCode());
+        
     }
 
     /**
-     * Get the tranlationurl for the specified language code
+     * Get the tranlation url for the specified language code
      *
      *
      *
@@ -133,7 +134,11 @@ public String getName() {
     }
 
     @Override
+    @ThreadConfined(type = ThreadConfined.ThreadType.AWT)
     public JPanel getSettingsPanel() {
+        if(settingsPanel == null) {
+            settingsPanel = new BingTranslatorSettingsPanel(settings.getAuthenticationKey(), settings.getTargetLanguageCode());
+        }
         return settingsPanel;
     }
 
diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java
index ec741902293001def059c0a8b12a206b3540d833..c0820b688ccbfe85b4b9d31b62c43001f12a1295 100644
--- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java
+++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java
@@ -36,6 +36,7 @@
 import org.openide.util.NbBundle.Messages;
 import org.openide.util.lookup.ServiceProvider;
 import org.sleuthkit.autopsy.coreutils.EscapeUtil;
+import org.sleuthkit.autopsy.coreutils.ThreadConfined;
 import org.sleuthkit.autopsy.texttranslation.TextTranslator;
 import org.sleuthkit.autopsy.texttranslation.TranslationConfigException;
 import org.sleuthkit.autopsy.texttranslation.TranslationException;
@@ -50,7 +51,7 @@ public final class GoogleTranslator implements TextTranslator {
     private static final Logger logger = Logger.getLogger(GoogleTranslator.class.getName());
     //See translate method for justification of this limit.
     private static final int MAX_PAYLOAD_SIZE = 5000;
-    private final GoogleTranslatorSettingsPanel settingsPanel;
+    private GoogleTranslatorSettingsPanel settingsPanel;
     private final GoogleTranslatorSettings settings = new GoogleTranslatorSettings();
     private Translate googleTranslate;
 
@@ -59,7 +60,6 @@ public final class GoogleTranslator implements TextTranslator {
      */
     public GoogleTranslator() {
         // Instantiates a client
-        settingsPanel = new GoogleTranslatorSettingsPanel(settings.getCredentialPath(), settings.getTargetLanguageCode());
         loadTranslator();
     }
 
@@ -134,7 +134,11 @@ public String getName() {
     }
 
     @Override
+    @ThreadConfined(type = ThreadConfined.ThreadType.AWT)
     public JPanel getSettingsPanel() {
+        if(settingsPanel == null) {
+            settingsPanel = new GoogleTranslatorSettingsPanel(settings.getCredentialPath(), settings.getTargetLanguageCode());
+        }
         return settingsPanel;
     }