diff --git a/CHANGES b/CHANGES
index 186cc3a15..e3e3649e4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,7 @@ Bugfixes:
  - PowerPC: Fix several potential crashes (fixes mgba.io/i/1089)
  - Qt: Fix build with Qt 5.11 (fixes mgba.io/i/1094)
  - GBA Serialize: Fix loading channel 3 volume (fixes mgba.io/i/1107)
+ - GBA BIOS: Fix BitUnPack final byte
 
 0.6.3: (2017-04-14)
 Bugfixes:
diff --git a/src/gba/bios.c b/src/gba/bios.c
index a7c2a80b0..8ad84988e 100644
--- a/src/gba/bios.c
+++ b/src/gba/bios.c
@@ -803,7 +803,7 @@ static void _unBitPack(struct GBA* gba) {
 	uint32_t out = 0;
 	int bitsRemaining = 0;
 	int bitsEaten = 0;
-	while (sourceLen > 0) {
+	while (sourceLen > 0 || bitsRemaining) {
 		if (!bitsRemaining) {
 			in = cpu->memory.load8(cpu, source, 0);
 			bitsRemaining = 8;