diff --git a/main/alaw.c b/main/alaw.c
index fbc99b0fe930785ed4b4cace28ff11ac03ef043e..8baa6a7a3576b9358760a0a9b43277f3405720a1 100644
--- a/main/alaw.c
+++ b/main/alaw.c
@@ -112,7 +112,7 @@ static inline short int alaw2linear (unsigned char alaw)
     int seg;
 	
     alaw ^= AMI_MASK;
-    i = ((alaw & 0x0F) << 4);
+    i = ((alaw & 0x0F) << 4) + 8 /* rounding error */;
     seg = (((int) alaw & 0x70) >> 4);
     if (seg)
 	    i = (i + 0x100) << (seg - 1);