Index: read.c =================================================================== --- read.c (revision 35232) +++ read.c (revision 35233) @@ -1571,6 +1571,9 @@ return -1; } + if (need_mirror) + rot = 180-rot; + nsc = pcb_subc_dup_at(ctx->pcb, ctx->pcb->Data, subc, crd[0], crd[1], 0, rnd_false); pcb_attribute_put(&nsc->Attributes, "refdes", refdes); Index: write.c =================================================================== --- write.c (revision 35232) +++ write.c (revision 35233) @@ -474,6 +474,9 @@ value = pcb_attrib_get(subc, "value"); + if (on_bottom) + rot = 180-rot; + fprintf(wctx->f, " (component subc_%ld\n", proto->ID); rnd_fprintf(wctx->f, " (place %s %[4] %[4] %s %d", refdes, COORDX(x), COORDY(y), (on_bottom ? "back" : "front"), (int)rot);