diff --git a/lib/display_options.c b/lib/display_options.c
index 20319e6..d0480f5 100644
--- a/lib/display_options.c
+++ b/lib/display_options.c
@@ -101,10 +101,12 @@
 #define DEFAULT_LINE_LENGTH_BYTES (16)
 int print_buffer (ulong addr, void* data, uint width, uint count, uint linelen)
 {
-	uint8_t linebuf[MAX_LINE_LENGTH_BYTES + 1];
-	uint32_t *uip = (void*)linebuf;
-	uint16_t *usp = (void*)linebuf;
-	uint8_t *ucp = (void*)linebuf;
+	/* linebuf as a union causes proper alignment */
+	union linebuf {
+		uint32_t ui[MAX_LINE_LENGTH_BYTES/sizeof(uint32_t) + 1];
+		uint16_t us[MAX_LINE_LENGTH_BYTES/sizeof(uint16_t) + 1];
+		uint8_t  uc[MAX_LINE_LENGTH_BYTES/sizeof(uint8_t) + 1];
+	} lb;
 	int i;
 
 	if (linelen*width > MAX_LINE_LENGTH_BYTES)
@@ -123,21 +125,22 @@
 		for (i = 0; i < linelen; i++) {
 			uint32_t x;
 			if (width == 4)
-				x = uip[i] = *(volatile uint32_t *)data;
+				x = lb.ui[i] = *(volatile uint32_t *)data;
 			else if (width == 2)
-				x = usp[i] = *(volatile uint16_t *)data;
+				x = lb.us[i] = *(volatile uint16_t *)data;
 			else
-				x = ucp[i] = *(volatile uint8_t *)data;
+				x = lb.uc[i] = *(volatile uint8_t *)data;
 			printf(" %0*x", width * 2, x);
 			data += width;
 		}
 
 		/* Print data in ASCII characters */
-		for (i = 0; i < linelen * width; i++)
-			if (!isprint(ucp[i]) || ucp[i] >= 0x80)
-				ucp[i] = '.';
-		ucp[i] = '\0';
-		printf("    %s\n", ucp);
+		for (i = 0; i < linelen * width; i++) {
+			if (!isprint(lb.uc[i]) || lb.uc[i] >= 0x80)
+				lb.uc[i] = '.';
+		}
+		lb.uc[i] = '\0';
+		printf("    %s\n", lb.uc);
 
 		/* update references */
 		addr += linelen * width;
