diff --git a/lib/csharp/src/Protocol/TBinaryProtocol.cs b/lib/csharp/src/Protocol/TBinaryProtocol.cs
index 53daa1d..682078b 100644
--- a/lib/csharp/src/Protocol/TBinaryProtocol.cs
+++ b/lib/csharp/src/Protocol/TBinaryProtocol.cs
@@ -347,15 +347,17 @@
 		public override long ReadI64()
 		{
 			ReadAll(i64in, 0, 8);
-            return (long)(
-                (ulong)((ulong)(i64in[0] & 0xff) << 56) |
-                (ulong)((ulong)(i64in[1] & 0xff) << 48) |
-                (ulong)((ulong)(i64in[2] & 0xff) << 40) |
-                (ulong)((ulong)(i64in[3] & 0xff) << 32) |
-                (ulong)((ulong)(i64in[4] & 0xff) << 24) |
-                (ulong)((ulong)(i64in[5] & 0xff) << 16) |
-                (ulong)((ulong)(i64in[6] & 0xff) << 8) |
-                (ulong)((ulong)(i64in[7] & 0xff)));
+            unchecked {
+              return (long)(
+                  ((long)(i64in[0] & 0xff) << 56) |
+                  ((long)(i64in[1] & 0xff) << 48) |
+                  ((long)(i64in[2] & 0xff) << 40) |
+                  ((long)(i64in[3] & 0xff) << 32) |
+                  ((long)(i64in[4] & 0xff) << 24) |
+                  ((long)(i64in[5] & 0xff) << 16) |
+                  ((long)(i64in[6] & 0xff) << 8) |
+                  ((long)(i64in[7] & 0xff)));
+            }
         }
 
 		public override double ReadDouble()
