diff --git a/core/java/src/net/i2p/client/impl/I2PSessionImpl.java b/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
index 84bed6adf54763e3f340620104a59a17f292c54b..fd28a7f6f20c85616293255be54a431cce52d820 100644
--- a/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
+++ b/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
@@ -605,7 +605,11 @@ public abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2
                             Constructor<?> ctor = clazz.getDeclaredConstructor(I2PAppContext.class);
                             Object fact = ctor.newInstance(_context);
                             Method createSocket = clazz.getDeclaredMethod("createSocket", String.class);
-                            _socket = (Socket) createSocket.invoke(fact, _options.getProperty(PROP_DOMAIN_SOCKET));
+                            try {
+                                _socket = (Socket) createSocket.invoke(fact, _options.getProperty(PROP_DOMAIN_SOCKET));
+                            } catch (InvocationTargetException e) {
+                                throw new I2PSessionException("Cannot create domain socket", e);
+                            }
                         } catch (ClassNotFoundException e) {
                             throw new I2PSessionException("Cannot load DomainSocketFactory", e);
                         } catch (NoSuchMethodException e) {