diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java
index <HASH>..<HASH> 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/glyptodon/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java
@@ -529,8 +529,9 @@ public abstract class AbstractGuacamoleTunnelService implements GuacamoleTunnelS
         }
 
         // Ensure connection group is always released if child acquire fails
-        finally {
+        catch (GuacamoleException e) {
             release(user, connectionGroup);
+            throw e;
         }
 
         // Connect to acquired child
GUAC-<I>: Don't "ALWAYS" release connection groups ... they only need to be released when acquire fails.