diff --git a/py/objarray.c b/py/objarray.c
index ef5fe8ffefcf3fd833e3bc75d8d9ba92deee6453..9911e89df92d3a3ec314ab7883a84e68959a3f78 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -124,19 +124,20 @@ static void array_set_el(mp_obj_array_t *o, int index, mp_obj_t val_in) {
 static void array_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t o_in, mp_print_kind_t kind) {
     mp_obj_array_t *o = o_in;
     if (o->typecode == BYTEARRAY_TYPECODE) {
-        print(env, "bytearray(", o->typecode);
+        print(env, "bytearray(b", o->typecode);
+        mp_str_print_quoted(print, env, o->items, o->len);
     } else {
         print(env, "array('%c'", o->typecode);
-    }
-    if (o->len > 0) {
-        print(env, ", [", o->typecode);
-        for (int i = 0; i < o->len; i++) {
-            if (i > 0) {
-                print(env, ", ");
+        if (o->len > 0) {
+            print(env, ", [", o->typecode);
+            for (int i = 0; i < o->len; i++) {
+                if (i > 0) {
+                    print(env, ", ");
+                }
+                print(env, "%d", array_get_el(o, i));
             }
-            print(env, "%d", array_get_el(o, i));
+            print(env, "]");
         }
-        print(env, "]");
     }
     print(env, ")");
 }
diff --git a/tests/basics/bytearray1.py b/tests/basics/bytearray1.py
index 3658713fa8b3c5f4faa73a1cdce811ae786c8254..3111832f6c30c0921fb7ce453fe2272e4cec3aa1 100644
--- a/tests/basics/bytearray1.py
+++ b/tests/basics/bytearray1.py
@@ -1,6 +1,7 @@
 a = bytearray([1, 2, 200])
 print(a[0], a[2])
 print(a[-1])
+print(a)
 a[2] = 255
 print(a[-1])
 a.append(10)