diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/SideBandInputStream.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/SideBandInputStream.java
index 7b5422644a4135917b62e678dd9deac59385c834..5f3b34e6fa9e225d5cdbff5e45d1319ab4f137ef 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/SideBandInputStream.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/SideBandInputStream.java
@@ -148,7 +148,7 @@ private void needDataPacket() throws IOException {
 				return;
 			}
 
-			channel = rawIn.read();
+			channel = rawIn.read() & 0xff;
 			available -= HDR_SIZE; // length header plus channel indicator
 			if (available == 0)
 				continue;