Prefab shooting acting up upon shot?

Hello, So I have an arrow prefab with ArrowDamage script on it.
It is rotated the way i want. Then on my main camera i have a shooting script.
However when i shoot the arrow comes out correctly but it is straight up and down instead of away from em like an arrow is when its shot? Why?
Thanks!

ArrowDamage:

using UnityEngine;
using System.Collections;

public class ArrowDamage : MonoBehaviour {
    public int Damage = 25;

    void OnCollisionEnter(Collision info) {
        info.transform.SendMessage("ApplyDamage", Damage, SendMessageOptions.DontRequireReceiver);
    }
}

PrefabShooting:

using UnityEngine;
using System.Collections;

public class PrefabShooting : MonoBehaviour
{
    public Rigidbody theBullet;
    public int speed = 40;
    public float timer = 0.7F;

    void Update()
    {
        timer -= Time.deltaTime;
        if (Input.GetMouseButtonDown (0)) {
            if (timer <= 0) {
                Rigidbody clone = Instantiate (theBullet, transform.position, transform.rotation) as Rigidbody;
                clone.velocity = transform.TransformDirection (Vector3.forward * speed);

                Destroy (clone.gameObject, 2);
                timer = 0.7F;
            }
        }
    }
}

I’m guessing your bullet does not shoot forward on its Z axis the way your player might move forward on its Z axis.

To prove this, drag your player into an empty scene, drag the bullet into the scene, parent the bullet to the player, then set the bullets (local!) rotation to (0,0,0). At that point, if it does not point in the direction of your player, that is your problem.

Yup, the arrow is facing up and down?
What can I do?

Make a new bullet from a blank game object, with the blank game object facing the “right” way, and then the existing bullet becomes a child to the new object, then overwrite your prefab.

Well the prefab I have now is facing the right way?