def sp_needs_rebuild(orig_net, new_net, sp_id):
    """Determines if a synapse-pool needs rebuild for new network dictionary.
    
    Parameters:
    orig_net : dict
        Dictionary containing the original network.
    new_net : dict
        Dictionary containing the new edited network.
    sp_id : str
        String specifying the synapse-pool under consideration.
    """
    needs_rebuild = False
    # Get synapse-pool sub-dict.
    orig_p = orig_net["synapse_pools"][sp_id]
    new_p = new_net["synapse_pools"][sp_id]
    # Check if bias shape is different.
    orig_bias_shape = orig_p.get("bias_shape", "feature")
    new_bias_shape = new_p.get("bias_shape", "feature")
    if orig_bias_shape != new_bias_shape:
        needs_rebuild = True
    # Check if activation function is different.
    orig_act = orig_p.get("act", "Id")
    new_act = new_p.get("act", "Id")
    if orig_act != new_act:
        needs_rebuild = True

    # Return rebuild flag.
    return needs_rebuild