 
         copy(activations, inputActivations);
 
-        detail::forwardPropRecurrentOverActivationFunctions(activations, weights, scratch, handle);
+        detail::forwardPropRecurrentOverActivationFunctions(activations,
+            reshape(weights, {handle.layerSize, handle.layerSize}), scratch, handle);
     }
     else
     {
         copy(activations, inputActivations);
 
-        detail::genericForwardPropRecurrent(activations, weights, handle);
+        detail::genericForwardPropRecurrent(activations,
+            reshape(weights, {handle.layerSize, handle.layerSize}), handle);
     }
 }
 

    {
        copy(inputDeltas, outputDeltas);

        detail::genericBackPropDeltasRecurrent(inputDeltas, weights, outputActivations, handle);

        copy(reserve, inputDeltas);
    }


        copy(inputDeltas, outputDeltas);

        detail::backPropDeltasRecurrentOverActivationFunctions(inputDeltas,
            reshape(weights, {handle.layerSize, handle.layerSize}),
            outputActivations, scratch, handle);

        copy(reserve, inputDeltas);
