diff --git a/src/Spectre.Console.Tests/Expectations/Widgets/Prompt/SecretDefaultValue.Output.verified.txt b/src/Spectre.Console.Tests/Expectations/Widgets/Prompt/SecretDefaultValue.Output.verified.txt
new file mode 100644
index 0000000..cba2d23
--- /dev/null
+++ b/src/Spectre.Console.Tests/Expectations/Widgets/Prompt/SecretDefaultValue.Output.verified.txt
@@ -0,0 +1 @@
+Favorite fruit? (******): ******
diff --git a/src/Spectre.Console.Tests/Unit/PromptTests.cs b/src/Spectre.Console.Tests/Unit/PromptTests.cs
index 2802945..c273250 100644
--- a/src/Spectre.Console.Tests/Unit/PromptTests.cs
+++ b/src/Spectre.Console.Tests/Unit/PromptTests.cs
@@ -200,5 +200,23 @@ namespace Spectre.Console.Tests.Unit
             result.Item1.ShouldBe(2);
             return Verifier.Verify(console.Output);
         }
+
+        [Fact]
+        [Expectation("SecretDefaultValue")]
+        public Task Should_Chose_Masked_Default_Value_If_Nothing_Is_Entered_And_Prompt_Is_Secret()
+        {
+            // Given
+            var console = new FakeConsole();
+            console.Input.PushKey(ConsoleKey.Enter);
+
+            // When
+            console.Prompt(
+                new TextPrompt<string>("Favorite fruit?")
+                    .Secret()
+                    .DefaultValue("Banana"));
+
+            // Then
+            return Verifier.Verify(console.Output);
+        }
     }
 }
diff --git a/src/Spectre.Console/Widgets/Prompt/TextPrompt.cs b/src/Spectre.Console/Widgets/Prompt/TextPrompt.cs
index 831630f..71af690 100644
--- a/src/Spectre.Console/Widgets/Prompt/TextPrompt.cs
+++ b/src/Spectre.Console/Widgets/Prompt/TextPrompt.cs
@@ -117,7 +117,7 @@ namespace Spectre.Console
                 {
                     if (DefaultValue != null)
                     {
-                        console.Write(converter(DefaultValue.Value), promptStyle);
+                        console.Write(IsSecret ? "******" : converter(DefaultValue.Value), promptStyle);
                         console.WriteLine();
                         return DefaultValue.Value;
                     }
@@ -186,10 +186,11 @@ namespace Spectre.Console
 
             if (ShowDefaultValue && DefaultValue != null)
             {
+                var converter = Converter ?? TypeConverterHelper.ConvertToString;
                 builder.AppendFormat(
                     CultureInfo.InvariantCulture,
                     " [green]({0})[/]",
-                    TypeConverterHelper.ConvertToString(DefaultValue.Value));
+                    IsSecret ? "******" : converter(DefaultValue.Value));
             }
 
             var markup = builder.ToString().Trim();