diff --git a/src/main/java/at/ac/uibk/sis/SisManagerImpl.java b/src/main/java/at/ac/uibk/sis/SisManagerImpl.java
index 901463500b9d1ea62dd0eb1d74120e2d5a590053..c66e2aa468d19e26c1612441ee5de9839cf4efdf 100644
--- a/src/main/java/at/ac/uibk/sis/SisManagerImpl.java
+++ b/src/main/java/at/ac/uibk/sis/SisManagerImpl.java
@@ -26,6 +26,7 @@ import java.util.Map;
 import javax.xml.bind.JAXBContext;
 import javax.xml.namespace.QName;
 import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamSource;
 import javax.xml.ws.Dispatch;
 import javax.xml.ws.Service;
 import javax.xml.ws.handler.MessageContext;
@@ -68,13 +69,14 @@ public class SisManagerImpl extends SisManager {
 				final Map<String, Object> requestContext = d.getRequestContext();
 				requestContext.put(MessageContext.HTTP_REQUEST_METHOD, new String(httpMethod));
 				// invoke
-				return d.invoke(null);				
+				return d.invoke(returnClass.newInstance());
 			} else {
 				final Dispatch<Source> d = service.createDispatch(portName, Source.class, Service.Mode.PAYLOAD);
 				final Map<String, Object> requestContext = d.getRequestContext();
 				requestContext.put(MessageContext.HTTP_REQUEST_METHOD, new String(httpMethod));
 				// invoke
-				return d.invokeAsync(null);
+				Source request = new StreamSource();
+				return d.invokeAsync(request);
 			}
 		} catch (final Exception ex) {
 			log.error("Cannot execute SIS request.", ex);