Notification: Please enable JavaScript and reload this page. Malts requires all users to enter their date of birth and country for verification of legal drinking age.
facebook-square pinterest-square twitter-square YouTube angle-down angle-left angle-right angle-up body caret-down caret-left caret-right caret-up casks character cross distillation Distillers-Edition Drops-of-Wisdom-close Drops-of-Wisdom-info Drops-of-Wisdom-orientation-arrow fermentation finish highlands islands left-arrow lowlands magnifying mashing minus nose palate Playhead plus process qq quote right-arrow scotland-outline scotland-shape Special-Release speyside star-half-empty star-half star-o star wechat weibo type-of-malt minus2 plus2

Teaninich

A little-known Highland distillery of ancient origin, it was for a good portion of the 20th century the only distillery north of Inverness with electricity and telephones

A little-known Highland distillery of ancient origin, it was for a good portion of the 20th century the only distillery north of Inverness with electricity and telephones. Until 1960 electricity was produced by two water wheels fed by water from a dam. The wheels have gone, but Teaninich whisky is no less delicious.

Discover
A well-made, subtly assertive Single Malt Scotch Whisky

Earthy and fresh

This is a restrained Highland whisky, leafy and fresh. It makes no apologies for being accessible, quietly warming from the inside with its earthy, vegetal aromas.

The Teaninich distillery

The Teaninich distillery

Captain Hugh Munro, whose family had long held the seat at Teaninich castle, founded one of the first legal distilleries in Ross-shire on his estate in 1817. That original building - along with part of the Munro’s castle! - has disappeared. But the whisky legacy of the great family has remained.

View History

An ancient Ross-shire Highland malt
With 'restorative' powers

Fresh and bracing

Teaninich is just a mile from the Cromarty Firth, where porpoises sometimes play in the waters of the Atlantic. It’s a wild place, and Teaninich offers the ideal restorative after a day spent walking in the wind and spray.

System.Web.HttpCompileException (0x80004005): e:\root\www_malts_com4329\www\Views\Partials\StructuredData.cshtml(56): error CS0103: The name 'context' does not exist in the current context at System.Web.Compilation.BuildManager.PostProcessFoundBuildResult(BuildResult result, Boolean keyFromVPP, VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetBuildResultFromCacheInternal(String cacheKey, Boolean keyFromVPP, VirtualPath virtualPath, Int64 hashCode, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultFromCacheInternal(VirtualPath virtualPath, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) at System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists(String virtualPath) at Microsoft.Web.Mvc.ViewEngineFixWorker`1.<>c__DisplayClass4.<GetPathFromGeneralName>b__0(String path) at System.Web.WebPages.DefaultDisplayMode.GetDisplayInfo(HttpContextBase httpContext, String virtualPath, Func`2 virtualPathExists) at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) at Microsoft.Web.Mvc.ViewEngineFixWorker`1.GetPathFromGeneralName(ControllerContext controllerContext, List`1 locations, String name, String controllerName, String areaName, String cacheKey, String[]& searchedLocations) at Microsoft.Web.Mvc.ViewEngineFixWorker`1.GetPath(ControllerContext controllerContext, String[] locations, String[] areaLocations, String locationsPropertyName, String name, String controllerName, String cacheKeyPrefix, Boolean useCache, String[]& searchedLocations) at Microsoft.Web.Mvc.ViewEngineFixWorker`1.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache) at Umbraco.Web.Mvc.RenderViewEngine.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache) at Umbraco.Core.Profiling.ProfilingViewEngine.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache) at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths) at System.Web.Mvc.ViewEngineCollection.FindPartialView(ControllerContext controllerContext, String partialViewName) at System.Web.Mvc.HtmlHelper.FindPartialView(ViewContext viewContext, String partialViewName, ViewEngineCollection viewEngineCollection) at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection) at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) at ASP._Page_Views_Page_cshtml.Execute() in e:\root\www_malts_com4329\www\Views\Page.cshtml:line 34