diff --git a/Reporter.cs b/Reporter.cs
index ccd0a9f0..3a563263 100644
--- a/Reporter.cs
+++ b/Reporter.cs
@@ -46,8 +46,9 @@ public bool Log(string data){
 
         public void HandleException(string caption, string message, bool canIgnore, Exception e){
             bool loggedSuccessfully = Log(e.ToString());
-
-            FormMessage form = new FormMessage(caption, message+"\nError: "+e.Message, canIgnore ? MessageBoxIcon.Warning : MessageBoxIcon.Error);
+            
+            string exceptionText = e is ExpandedLogException ? e.Message+"\n\nDetails with potentially sensitive information are in the Error Log." : e.Message;
+            FormMessage form = new FormMessage(caption, message+"\nError: "+exceptionText, canIgnore ? MessageBoxIcon.Warning : MessageBoxIcon.Error);
             
             Button btnExit = form.AddButton(FormMessage.Exit);
             Button btnIgnore = form.AddButton(FormMessage.Ignore, DialogResult.Ignore, ControlType.Cancel);
@@ -95,5 +96,15 @@ public static void HandleEarlyFailure(string caption, string message){
                 Environment.FailFast(message, new Exception(message));
             }
         }
+
+        public sealed class ExpandedLogException : Exception{
+            private readonly string details;
+
+            public ExpandedLogException(Exception source, string details) : base(source.Message, source){
+                this.details = details;
+            }
+
+            public override string ToString() => base.ToString()+"\r\n"+details;
+        }
     }
 }