diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/AbstractOperationEmitter.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/AbstractOperationEmitter.java
index 0e07075..a8198a3 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/AbstractOperationEmitter.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/AbstractOperationEmitter.java
@@ -44,6 +44,7 @@
 	private final List<Long> backwardsOffsets = new ArrayList<Long>();
 	private int currentOpIndex;
 	private long startOffset;
+	private boolean isClosed;
 
 	/**
 	 * Constructor.
@@ -265,6 +266,7 @@
 	 * Closes the emitter.
 	 */
 	public void close() {
+		setClosed(true);
 		try {
 			reader.close();
 		} catch (final IOException ex) {
@@ -272,4 +274,15 @@
 		}
 	}
 
+	/**
+	 * @return <code>true</code> if emitter was closed, <code>false</code> otherwise
+	 */
+	protected boolean isClosed() {
+		return isClosed;
+	}
+
+	private void setClosed(boolean isClosed) {
+		this.isClosed = isClosed;
+	}
+
 }
\ No newline at end of file
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java
index 5acdf25..3ad61b2 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/OperationEmitter.java
@@ -73,6 +73,14 @@
 			}
 		}).start();
 
+		if (isClosed()) {
+			try {
+				return Optional.absent();
+			} finally {
+				pis.close();
+			}
+		}
+
 		try {
 			final EObject deserializedObject = deserialize(pis);
 			if (AbstractOperation.class.isInstance(deserializedObject)) {
diff --git a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/SerializedOperationEmitter.java b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/SerializedOperationEmitter.java
index 77486ba..11b915c 100644
--- a/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/SerializedOperationEmitter.java
+++ b/bundles/org.eclipse.emf.emfstore.server.model/src/org/eclipse/emf/emfstore/internal/server/model/versioning/impl/persistent/SerializedOperationEmitter.java
@@ -64,6 +64,14 @@
 			}
 		}).start();
 
+		if (isClosed()) {
+			try {
+				return Optional.absent();
+			} finally {
+				pis.close();
+			}
+		}
+
 		try {
 			final String streamToString = convertStreamToString(pis);
 			if (XmlTags.XML_RESOURCE_WITH_EOBJECT.equals(streamToString)) {
