 
         copy(inputDeltas, outputDeltas);
 
-        detail::backPropDeltasRecurrentOverActivationFunctions(inputDeltas, weights,
+        detail::backPropDeltasRecurrentOverActivationFunctions(inputDeltas,
+            reshape(weights, {handle.layerSize, handle.layerSize}),
             outputActivations, scratch, handle);
 
         copy(reserve, inputDeltas);


        copy(activations, inputActivations);

        detail::forwardPropRecurrentOverActivationFunctions(activations, weights, scratch, handle);
    }
    else
    {
        copy(activations, inputActivations);

        detail::genericForwardPropRecurrent(activations, weights, handle);
    }
}


    {
        copy(inputDeltas, outputDeltas);

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

        copy(reserve, inputDeltas);
    }
