diff --git a/src/NHibernate.Test/Async/NHSpecificTest/GH1226/Fixture.cs b/src/NHibernate.Test/Async/NHSpecificTest/GH1226/Fixture.cs
new file mode 100644
index 00000000000..91bc4287096
--- /dev/null
+++ b/src/NHibernate.Test/Async/NHSpecificTest/GH1226/Fixture.cs
@@ -0,0 +1,164 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by AsyncGenerator.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+using System.Linq;
+using NHibernate.Engine;
+using NHibernate.Persister.Entity;
+using NUnit.Framework;
+using NHibernate.Linq;
+
+namespace NHibernate.Test.NHSpecificTest.GH1226
+{
+ using System.Threading.Tasks;
+ [TestFixture]
+ public class FixtureAsync : BugTestCase
+ {
+ protected override void OnSetUp()
+ {
+ base.OnSetUp();
+
+ using (var session = OpenSession())
+ {
+ using (var tx = session.BeginTransaction())
+ {
+ var bank = new Bank { Code = "01234" };
+ session.Save(bank);
+
+ var account = new Account { Bank = bank };
+ session.Save(account);
+
+ var account2 = new Account { Bank = bank };
+ session.Save(account2);
+
+ tx.Commit();
+ }
+ }
+ Sfi.Statistics.IsStatisticsEnabled = true;
+ }
+
+ [Test]
+ public async Task BankShouldBeJoinFetchedAsync()
+ {
+ // Simple case: nothing already in session.
+ using (var session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ var countBeforeQuery = Sfi.Statistics.PrepareStatementCount;
+
+ var accounts = await (session.CreateQuery("from Account a left join fetch a.Bank").ListAsync());
+ var associatedBanks = accounts.Select(x => x.Bank).ToList();
+ Assert.That(associatedBanks, Has.All.Matches