diff --git a/targets/corstone-300/retarget.c b/targets/corstone-300/retarget.c
index 13cf68b..4bde44d 100644
--- a/targets/corstone-300/retarget.c
+++ b/targets/corstone-300/retarget.c
@@ -33,7 +33,8 @@
 #define STDOUT 0x8002
 #define STDERR 0x8003
 
-#define RETARGET(fun) _sys##fun
+#define RETARGET(fun)  _sys##fun
+#define IO_OUTPUT(len) 0
 
 #else
 /*
@@ -52,7 +53,8 @@
 #define STDOUT 0x01
 #define STDERR 0x02
 
-#define RETARGET(fun) fun
+#define RETARGET(fun)  fun
+#define IO_OUTPUT(len) len
 
 #endif
 
@@ -90,15 +92,16 @@
     case STDOUT:
     case STDERR: {
         int c;
+        unsigned int i;
 
-        while (len-- > 0) {
-            c = fputc(*buf++, stdout);
+        for (i = 0; i < len; i++) {
+            c = fputc(buf[i], stdout);
             if (c == EOF) {
                 return EOF;
             }
         }
 
-        return 0;
+        return IO_OUTPUT(len);
     }
     default:
         return EOF;
@@ -111,17 +114,18 @@
     switch (fh) {
     case STDIN: {
         int c;
+        unsigned int i;
 
-        while (len-- > 0) {
+        for (i = 0; i < len; i++) {
             c = fgetc(stdin);
             if (c == EOF) {
                 return EOF;
             }
 
-            *buf++ = (unsigned char)c;
+            buf[i] = (unsigned char)c;
         }
 
-        return 0;
+        return IO_OUTPUT(len);
     }
     default:
         return EOF;
