diff --git a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd
index 87ad9f4aa4f1d2d7fa917a208257c13f546f0779..a2de801831cbeb841c308ca7d2a6f12137cd2a8c 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/node_sdp_adc_input_and_timing.vhd
@@ -204,13 +204,16 @@ BEGIN
   -- . the input valid is always '1', even when there is no data 
   -----------------------------------------------------------------------------
   
-  gen_force_valid : FOR I IN 0 TO c_sdp_S_pn-1 GENERATE
-    p_sosi : PROCESS(rx_sosi_arr)
-    BEGIN
-      dp_shiftram_snk_in_arr(I)       <= rx_sosi_arr(I);
-      dp_shiftram_snk_in_arr(I).valid <= '1';
-    END PROCESS;
-  END GENERATE;
+  p_dp_shiftram_snk_in_arr : PROCESS(rx_sosi_arr)
+  BEGIN
+    dp_shiftram_snk_in_arr <= rx_sosi_arr;
+    FOR I IN 0 TO c_sdp_S_pn-1 LOOP
+      -- ADC data is stored in the upper 14 bits of the jesd rx_sosi.
+      dp_shiftram_snk_in_arr(I).data    <= RESIZE_DP_SDATA(rx_sosi_arr(I).data(c_sdp_W_adc_jesd-1 DOWNTO (c_sdp_W_adc_jesd - c_sdp_W_adc) ));
+      -- Force valid.
+      dp_shiftram_snk_in_arr(I).valid   <= '1';
+    END LOOP;
+  END PROCESS;
 
 
   u_dp_shiftram : ENTITY dp_lib.dp_shiftram