     else
       _ -> flunk("expected failure")
     end
+  end
+
+  test "Exception.message/1 with bad implementation" do
+    message = ~s'''
+    #Inspect.Error<
+      got MyArgumentError with message:
+
+          """
+          errors were found at the given arguments:
+
+            * 1st argument: not an atom
+          """
+
+      while inspecting:
+
+          %{__struct__: Inspect.MapTest.Failing, name: "Foo"}
+    '''
+
+    {my_argument_error, stacktrace} =
+      try do
+        MyArgumentError.culprit()
+      rescue
+        e ->
+          {e, __STACKTRACE__}
+      end
+
+    inspected =
+      inspect(
+        Inspect.Error.exception(
+          exception: my_argument_error,
+          stacktrace: stacktrace,
+          inspected_struct: "%{__struct__: Inspect.MapTest.Failing, name: \"Foo\"}"
+        )
+      )
+
+    assert inspect(%Failing{name: "Foo"}) =~ message
+    assert inspected =~ message
   end
 
   test "exception" do

  test "safely inspect bad implementation disables colors" do
    message = ~s'''
    #Inspect.Error<
      got ArgumentError with message:

          """
          errors were found at the given arguments:


    defimpl Inspect do
      def inspect(%Failing{name: _name}, _) do
        MyArgumentError.culprit()
      end
    end
  end

  test "safely inspect bad implementation" do
    assert_raise MyArgumentError, ~r/errors were found at the given arguments:/, fn ->
      raise(MyArgumentError)
    end

    message = ~s'''
    #Inspect.Error<
      got MyArgumentError with message:

          """
          errors were found at the given arguments:
