Upload problem with traffic shaping though a Linux router.

So I want to limit the download and upload speed of a specific ip adress in a local network. To do this I are using a bach script running in a linux OS (Ubuntu 11.04). The issue here is that the upload shaper does not work. I have tried an alternate solution aswell though that does not work as intended

# Remove old shaping
tc qdisc del dev eth1 root 2> /dev/null > /dev/null
tc qdisc del dev eth1 ingress 2> /dev/null > /dev/null

# Create qdisc
tc qdisc add dev eth1 root handle 1: htb default 30

# Download shaper (works as intended)
tc class add dev eth1 parent 1:1 classid 1:4 htb rate 30000kbt
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.0.101/32 flowid 1:4

# Upload shaper (does not seam to do anything)
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 3000kbit
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.101/32 flowid 1:3

### Version 2 of the upload shaper:
# Need eth0 aswell to do this
tc qdisc add dev eth0 root handle 1: htb default 30

# Upload shaper (limits the entire network and not just the one IP)
# The reason for 192.168.0.101/0 is because the src is 10.0.0.166. 10.0.0.166 is the WAN IP adress. I dont get why this is.
# I dont know why i need to change it to eth0 either. It does nothing if i dont.
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 3000kbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.0.101/0 flowid 1:3

Any help at all would be MUCH appreciated!