Applying Robert Michel's more correct patch for #IO-101. 

git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/io/trunk@484864 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/commons/io/EndianUtils.java b/src/java/org/apache/commons/io/EndianUtils.java
index b450abf..1451f05 100644
--- a/src/java/org/apache/commons/io/EndianUtils.java
+++ b/src/java/org/apache/commons/io/EndianUtils.java
@@ -218,13 +218,13 @@
             ( ( data[ offset + 0 ] & 0xff ) << 0 ) +
             ( ( data[ offset + 1 ] & 0xff ) << 8 ) +
             ( ( data[ offset + 2 ] & 0xff ) << 16 ) +
-            ( ( (long) ( data[ offset + 3 ] & 0xff ) ) << 24 );
+            ( ( data[ offset + 3 ] & 0xff ) << 24 );
         long high = 
             ( ( data[ offset + 4 ] & 0xff ) << 0 ) +
             ( ( data[ offset + 5 ] & 0xff ) << 8 ) +
             ( ( data[ offset + 6 ] & 0xff ) << 16 ) +
-            ( ( (long) ( data[ offset + 7 ] & 0xff ) ) << 24 );
-        return low + (high << 32);
+            ( ( data[ offset + 7 ] & 0xff ) << 24 );
+        return ((long) high << 32) + (0xffffffffL & low); 
     }
 
     /**