diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs
index 4008c91e1..c9088862b 100644
--- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs
+++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs
@@ -60,4 +60,15 @@ public void virtual_host()
         ConnectionStringParser.Apply("virtualhost=weird", theFactory);
         theFactory.VirtualHost.ShouldBe("weird");
     }
+
+    [Theory]
+    [InlineData("host=foo;port=5673;")]
+    [InlineData("host=foo;port=5673")]
+    public void trailing_semicolon_is_optional(string connectionString)
+    {
+        ConnectionStringParser.Apply(connectionString, theFactory);
+        theFactory.HostName.ShouldBe("foo");
+        theFactory.Port.ShouldBe(5673);
+    }
+
 }
\ No newline at end of file
diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs
index 849e986ba..21f068672 100644
--- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs
+++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs
@@ -7,7 +7,7 @@ internal static class ConnectionStringParser
 {
     public static void Apply(string connectionString, ConnectionFactory factory)
     {
-        var values = connectionString.ToDelimitedArray(';');
+        var values = connectionString.ToDelimitedArray(';').Where(x => x.IsNotEmpty());
         foreach (var value in values)
         {
             var parts = value.ToDelimitedArray('=');