diff --git a/lib/action/compile.c b/lib/action/compile.c
index b658dd2..a13162f 100755
--- a/lib/action/compile.c
+++ b/lib/action/compile.c
@@ -245,13 +245,6 @@ int bufferWriteDataAndPush(Buffer a, Buffer b)
 	byte *data = b->buffer;
 	int length = b->pos - b->buffer;
 
-	if(a->pushloc && (b->buffer[0] == SWFACTION_PUSHDATA) && SWF_versionNum > 4)
-	{
-		pushd = (b->buffer[1] & 0xff) | ((b->buffer[2] & 0xff) << 8);
-		bufferPatchPushLength(a, pushd);
-		data += 3;
-		length -= 3;
-	}
 
 	if(b->pushloc)
 		pushd = b->pos - b->pushloc;
@@ -261,10 +254,7 @@ int bufferWriteDataAndPush(Buffer a, Buffer b)
 	for(i=0; i<length; ++i)
 		bufferWriteU8(a, data[i]);
 
-	if(a->pushloc &&
-		 (b->buffer[0] == SWFACTION_PUSHDATA) && (b->pushloc == b->buffer+1))
-		; /* b is just one pushdata, so do nothing.. */
-	else if(b->pushloc)
+	if(b->pushloc)
 		a->pushloc = a->pos - pushd;
 	else
 		a->pushloc = 0;
@@ -379,11 +369,8 @@ int bufferWriteString(Buffer out, byte *string, int length)
 	{
 		int l;
 
-		if(out->pushloc == NULL)
-		{
-			bufferWritePushOp(out);
-			bufferWriteS16(out, 0);
-		}
+		bufferWritePushOp(out);
+		bufferWriteS16(out, 0);
 
 		l = bufferWriteConstantString(out, string, length);
 
@@ -397,14 +384,9 @@ int bufferWriteInt(Buffer out, int i)
 	int len = 0;
 	unsigned char *p = (unsigned char *)&i;
 
-	if(out->pushloc == NULL || SWF_versionNum < 5)
-	{
-		len = 3;
-		bufferWritePushOp(out);
-		bufferWriteS16(out, 5);
-	}
-	else
-		bufferPatchPushLength(out, 5);
+	len = 3;
+	bufferWritePushOp(out);
+	bufferWriteS16(out, 5);
 
 	bufferWriteU8(out, PUSH_INT);
 
@@ -431,14 +413,9 @@ int bufferWriteDouble(Buffer out, double d)
 	int len = 0;
 	unsigned char *p = (unsigned char *)&d;
 
-	if(out->pushloc == NULL || SWF_versionNum < 5)
-	{
-		len = 3;
-		bufferWritePushOp(out);
-		bufferWriteS16(out, 9);
-	}
-	else
-		bufferPatchPushLength(out, 5);
+	len = 3;
+	bufferWritePushOp(out);
+	bufferWriteS16(out, 9);
 
 	bufferWriteU8(out, PUSH_DOUBLE);
 
@@ -472,14 +449,9 @@ int bufferWriteNull(Buffer out)
 {
 	int len = 0;
 
-	if(out->pushloc == NULL || SWF_versionNum < 5)
-	{
-		len = 3;
-		bufferWritePushOp(out);
-		bufferWriteS16(out, 1);
-	}
-	else
-		bufferPatchPushLength(out, 1);
+	len = 3;
+	bufferWritePushOp(out);
+	bufferWriteS16(out, 1);
 
 	bufferWriteU8(out, PUSH_NULL);
 
@@ -490,14 +462,9 @@ int bufferWriteBoolean(Buffer out, int val)
 {
 	int len = 0;
 
-	if(out->pushloc == NULL || SWF_versionNum < 5)
-	{
-		len = 3;
-		bufferWritePushOp(out);
-		bufferWriteS16(out, 2);
-	}
-	else
-		bufferPatchPushLength(out, 2);
+	len = 3;
+	bufferWritePushOp(out);
+	bufferWriteS16(out, 2);
 
 	bufferWriteU8(out, PUSH_BOOLEAN);
 	bufferWriteU8(out, val ? 1 : 0);
@@ -509,14 +476,9 @@ int bufferWriteRegister(Buffer out, int num)
 {
 	int len = 0;
 
-	if(out->pushloc == NULL || SWF_versionNum < 5)
-	{
-		len = 3;
-		bufferWritePushOp(out);
-		bufferWriteS16(out, 2);
-	}
-	else
-		bufferPatchPushLength(out, 2);
+	len = 3;
+	bufferWritePushOp(out);
+	bufferWriteS16(out, 2);
 
 	bufferWriteU8(out, PUSH_REGISTER);
 	bufferWriteU8(out, num);
