diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index 4c8afbdfa23a43b756ec3a91c3b443c6e91ac501..a0c60e11348fe2cdfcb71f6f2c27621d61890bb2 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -910,7 +910,7 @@ void gdb_target_to_reg(target_t *target, char *tstr, int str_len, u8 *bin)
 	for (i = 0; i < str_len; i+=2)
 	{
 		u8 t = hextoint(tstr[i])<<4;
-		t |= hextoint(tstr[i]);
+		t |= hextoint(tstr[i+1]);
 
 		int j = gdb_reg_pos(target, i/2, str_len/2);
 		bin[j] = t;