Don't miss calls to TeeInputStream.reachedEndOfFile()
diff --git a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
index 9ef8932..18569a2 100644
--- a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
+++ b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
@@ -167,6 +167,12 @@
         if (useETag)
         {
           String eTag = properties.get(Blob.ETAG);
+
+          if (DEBUG)
+          {
+            System.out.println("Retrieving etag = " + eTag);
+          }
+
           if (!StringUtil.isEmpty(eTag))
           {
             request.setHeader(IF_NONE_MATCH, "\"" + eTag + "\"");
@@ -184,6 +190,11 @@
         String eTag = getETag(response);
         if (eTag != null)
         {
+          if (DEBUG)
+          {
+            System.out.println("Retrieved etag = " + eTag);
+          }
+
           properties.put(Blob.ETAG, eTag);
         }
 
@@ -228,6 +239,12 @@
         Request request = configureRequest(Request.Put(uri), uri);
 
         String eTag = properties.get(Blob.ETAG);
+
+        if (DEBUG)
+        {
+          System.out.println("Updating etag = " + eTag);
+        }
+
         if (!StringUtil.isEmpty(eTag))
         {
           request.setHeader(IF_MATCH, "\"" + eTag + "\"");
@@ -256,6 +273,11 @@
           throw new ProtocolException("PUT", uri, getProtocolVersion(response.getStatusLine()), BAD_RESPONSE, "Bad Response : No ETag");
         }
 
+        if (DEBUG)
+        {
+          System.out.println("Updated etag = " + eTag);
+        }
+
         properties.put(Blob.ETAG, eTag);
         return statusCode == CREATED;
       }
diff --git a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java
index c32aa5e..4a21e26 100644
--- a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java
+++ b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java
@@ -327,7 +327,8 @@
       {
         out.write(b, off, n);
       }
-      else
+
+      if (n < len)
       {
         reachedEndOfFile();
       }