Miss Morton and the Spirits of the Underworld

Set against the timelessly intriguing backdrop of 1830s high-society London, this delightful historical mystery series features Miss Caroline Morton, daughter of a disgraced earl, now gainfully employed as a lady’s companion—along with a sideline in sleuthing . . .

Lady Caroline is happy to be back amid the swirl of London society, guiding her employer’s daughter, Dorothy Frogerton, through her first Season. Dorothy has been declared “an original” by a patron of the exclusive social club, Almack’s, and is sifting through potential suitors. Mrs. Frogerton, meanwhile, finds her own diversions, including spiritualist gatherings at the home of Madam Lavinia, and begs Caroline to come along.

Caroline is skeptical of Madam’s antics and faux French accent—until she slips a note into Caroline’s hand, which contains intimate family knowledge. Even as Caroline tries to discern whether the spiritualist’s powers are real, a much darker mystery presents itself. Madam Lavinia is found lifeless in her chair, a half-empty glass of port at her elbow. In her desk is a note addressed to Caroline, entreating her to find her murderer.

Caroline needs no psychic abilities to determine a motive, for it seems that Madam was blackmailing some of her clients and has left a trail of aggrieved aristocrats behind. But as Caroline and Mrs. Frogerton investigate further, they find other suspects, and a litany of deceptions, some very close to home. Now Caroline will need to keep all her wits about her if she is to stop others from joining Madam Lavinia in the afterlife . . .

Length: 8 hours and 51 minutes
Narrator: Lucy Rayner
Buy it here:  
  • Barnes & Noble
  • Kobo
  • Everand
  • Released on August 22, 2023
    hardcover: 978-14967406-1-8
    Books in This Series

    Fatal error: Uncaught ErrorException: md5_file(/home/katepear/public_html/wp-content/litespeed/js/a95d57e4b9f9acdfd2d094c73e281f61.js.tmp): Failed to open stream: No such file or directory in /home/katepear/public_html/wp-content/plugins/litespeed-cache/src/optimizer.cls.php:140 Stack trace: #0 [internal function]: litespeed_exception_handler() #1 /home/katepear/public_html/wp-content/plugins/litespeed-cache/src/optimizer.cls.php(140): md5_file() #2 /home/katepear/public_html/wp-content/plugins/litespeed-cache/src/optimize.cls.php(837): LiteSpeed\Optimizer->serve() #3 /home/katepear/public_html/wp-content/plugins/litespeed-cache/src/optimize.cls.php(382): LiteSpeed\Optimize->_build_hash_url() #4 /home/katepear/public_html/wp-content/plugins/litespeed-cache/src/optimize.cls.php(264): LiteSpeed\Optimize->_optimize() #5 /home/katepear/public_html/wp-includes/class-wp-hook.php(324): LiteSpeed\Optimize->finalize() #6 /home/katepear/public_html/wp-includes/plugin.php(205): WP_Hook->apply_filters() #7 /home/katepear/public_html/wp-content/plugins/litespeed-cache/src/core.cls.php(477): apply_filters() #8 [internal function]: LiteSpeed\Core->send_headers_force() #9 /home/katepear/public_html/wp-includes/functions.php(5427): ob_end_flush() #10 /home/katepear/public_html/wp-includes/class-wp-hook.php(324): wp_ob_end_flush_all() #11 /home/katepear/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #12 /home/katepear/public_html/wp-includes/plugin.php(517): WP_Hook->do_action() #13 /home/katepear/public_html/wp-includes/load.php(1280): do_action() #14 [internal function]: shutdown_action_hook() #15 {main} thrown in /home/katepear/public_html/wp-content/plugins/litespeed-cache/src/optimizer.cls.php on line 140