diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 173e9e4..9fde17be 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -423,7 +423,7 @@
 	u16 txfid = priv->txfid;
 	char *p;
 	struct ethhdr *eh;
-	int len, data_len, data_off;
+	int data_len, data_off;
 	struct hermes_tx_descriptor desc;
 	unsigned long flags;
 
@@ -455,13 +455,10 @@
 		return NETDEV_TX_OK;
 	}
 
-	/* Length of the packet body */
-	/* FIXME: what if the skb is smaller than this? */
-	len = max_t(int, ALIGN(skb->len, 2), ETH_ZLEN);
-	skb = skb_padto(skb, len);
-	if (skb == NULL)
+	/* Check packet length */
+	data_len = skb->len;
+	if (data_len < ETH_HLEN)
 		goto fail;
-	len -= ETH_HLEN;
 
 	eh = (struct ethhdr *)skb->data;
 
@@ -485,7 +482,7 @@
 	/* Encapsulate Ethernet-II frames */
 	if (ntohs(eh->h_proto) > ETH_DATA_LEN) { /* Ethernet-II frame */
 		struct header_struct hdr;
-		data_len = len;
+		data_len = skb->len - ETH_HLEN;
 		data_off = HERMES_802_3_OFFSET + sizeof(hdr);
 		p = skb->data + ETH_HLEN;
 
@@ -507,21 +504,13 @@
 			stats->tx_errors++;
 			goto fail;
 		}
-		/* Actual xfer length - allow for padding */
-		len = ALIGN(data_len, 2);
-		if (len < ETH_ZLEN - ETH_HLEN)
-			len = ETH_ZLEN - ETH_HLEN;
 	} else { /* IEEE 802.3 frame */
-		data_len = len + ETH_HLEN;
+		data_len = skb->len;
 		data_off = HERMES_802_3_OFFSET;
 		p = skb->data;
-		/* Actual xfer length - round up for odd length packets */
-		len = ALIGN(data_len, 2);
-		if (len < ETH_ZLEN)
-			len = ETH_ZLEN;
 	}
 
-	err = hermes_bap_pwrite_pad(hw, USER_BAP, p, data_len, len,
+	err = hermes_bap_pwrite(hw, USER_BAP, p, data_len,
 				txfid, data_off);
 	if (err) {
 		printk(KERN_ERR "%s: Error %d writing packet to BAP\n",
