diff --git a/libndi.c b/libndi.c
index c33342beff89197761aa9da76d7a02afea789921..7f78f51d4947ca10a1bef3eecbcbe32901bec2fa 100644
--- a/libndi.c
+++ b/libndi.c
@@ -290,11 +290,11 @@ static int process_audio_message(ndi_ctx *ndi_ctx, uint8_t *data, int header_len
                 if(bps == 2) {
                     ndi_data.buf[i]->data[2*j+0] = data[1];
                     ndi_data.buf[i]->data[2*j+1] = data[0];
-                } else(bps == 4) {
+                } else if(bps == 4) {
                     float sf = scale_factors[i] / 32767.0f;
                     int16_t sample = ((uint16_t)data[1] << 8) | data[0];
                     sf *= sample;
-                    memcpy(&ndi_data.buf[i]->data[4*j], sf, sizeof(sf));
+                    memcpy(&ndi_data.buf[i]->data[4*j], &sf, sizeof(sf));
                 }
                 data += sizeof(int16_t);
             }