Simple sphere rotation gets wonky over time

Using some simple c# code I would like to create an object and the move and rotate it over time. However the rotation begins to get wonky after a while and eventually results in the object coords moving out of valid world space. Here is some sample code which shows the problem. I seems like the object pivot point is drifting. The problem does not occur if I do not move the object. Any suggestions would be appreciated.

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {
	
	GameObject gameobject;
		
	// Use this for initialization
	void Start () {
		gameobject = GameObject.CreatePrimitive(PrimitiveType.Sphere) as GameObject;
		gameobject.transform.Translate(10,10,10);
	}
	
	// Update is called once per frame
	void Update () {
		gameobject.transform.RotateAround(Vector3.left, 10.0f*Time.deltaTime);
		gameobject.transform.Translate( 0.1f*Time.deltaTime, 1.0f*Time.deltaTime, 0.1f*Time.deltaTime);
	}
}

Translate by default uses local space, thus when you rotate the object it changes the direction of movement, resulting in very weird trajectories. To make things worse, you’re rotating the object with RotateAround, which actually rotates around the specified center (Vector3.left, or -1,0,0).

I suppose that what you really want is the object rotating around itself, which can be done with Rotate:

    void Update () {
        // rotate around Y axis:
        gameobject.transform.Rotate(0, 10.0f*Time.deltaTime, 0);
        // move in world forward direction:
        gameobject.transform.Translate( 0.1f*Time.deltaTime*Vector3.forward, Space.World);
    }