diff --git a/rbutil/mkamsboot/dualboot/dualboot.S b/rbutil/mkamsboot/dualboot/du
index fe1a64b..7a2b230 100644
--- a/rbutil/mkamsboot/dualboot/dualboot.S
+++ b/rbutil/mkamsboot/dualboot/dualboot.S
@@ -157,10 +157,22 @@ uclcopy:
cmp r1, #0 /* C3 = #0 means button pressed */
beq boot_of
#elif defined(SANSA_CLIPPLUS)
- /* TODO */
+ ldr r0, =GPIOA
+ ldr r1, [r0, #0x400] @ r1 = GPIOA_DIR
+ bic r2, r1, #(1<<1) @ A1 = input
+ str r2, [r0, #0x400] @ write back direction
+
+ ldr r2, [r0, #4*(1<<1)] @ read A1
+ str r1, [r0, #0x400] @ write back original GPIOA_DIR
+
+ ands r2, #(1<<1) @ test A1
+ beq immediate @ boot immediately if unset
+
mov r0, #0x500000 /* Approximately 5 seconds */
1: subs r0, r0, #1 /* just to prove we are running */
bne 1b
+
+immediate:
b boot_of /* branch to OF */
#elif defined(SANSA_C200V2)
/* check for RIGHT on C6, should changed to LEFT as soon as it