diff --git a/lib/php/src/ext/thrift_protocol/trunk/php_thrift_protocol.cpp b/lib/php/src/ext/thrift_protocol/trunk/php_thrift_protocol.cpp
index 1df54d5..a666128 100644
--- a/lib/php/src/ext/thrift_protocol/trunk/php_thrift_protocol.cpp
+++ b/lib/php/src/ext/thrift_protocol/trunk/php_thrift_protocol.cpp
@@ -148,7 +148,7 @@
   size_t buffer_remaining;
   size_t buffer_size;
 
-  zval* p; 
+  zval* p;
   zval* t;
   zval funcname;
 };
@@ -161,7 +161,7 @@
   if (! ce) {
     php_error_docref(NULL TSRMLS_CC, E_ERROR, "Class %s does not exist", obj_typename);
     RETURN_NULL();
-  } 
+  }
 
   object_and_properties_init(return_value, ce, NULL);
 }
@@ -173,7 +173,7 @@
     case T_STOP:
     case T_VOID:
       RETURN_NULL();
-      return; 
+      return;
     case T_STRUCT: {
       assert(structType);
       createObject(structType, return_value);
@@ -195,10 +195,10 @@
       RETURN_BOOL(c != 0);
     }
   //case T_I08: // same numeric value as T_BYTE
-    case T_BYTE: { 
+    case T_BYTE: {
       uint8_t c;
       transport.readBytes(&c, 1);
-      RETURN_LONG(c); 
+      RETURN_LONG(c);
     }
     case T_I16: {
       uint16_t c;
@@ -338,7 +338,7 @@
     efree(args);
     RETURN_NULL();
   }
- 
+
   char* structType = NULL;
   if (argc >= 3) {
     if (Z_TYPE_PP(args[2]) == IS_STRING) {
diff --git a/lib/php/src/protocol/TBinaryProtocol.php b/lib/php/src/protocol/TBinaryProtocol.php
index f66f8ee..874a548 100644
--- a/lib/php/src/protocol/TBinaryProtocol.php
+++ b/lib/php/src/protocol/TBinaryProtocol.php
@@ -314,34 +314,34 @@
 
       // Check for a negative
       if ($isNeg) {
-	$hi = ~$hi & (int)0xffffffff;
-	$lo = ~$lo & (int)0xffffffff;
+        $hi = ~$hi & (int)0xffffffff;
+        $lo = ~$lo & (int)0xffffffff;
 
-	if ($lo == (int)0xffffffff) {
-	  $hi++;
-	  $lo = 0;
-	} else {
-	  $lo++;
-	}
+        if ($lo == (int)0xffffffff) {
+          $hi++;
+          $lo = 0;
+        } else {
+          $lo++;
+        }
       }
 
       // Force 32bit words in excess of 2G to pe positive - we deal wigh sign
       // explicitly below
 
       if ($hi & (int)0x80000000) {
-	$hi &= (int)0x7fffffff;
-	$hi += 0x80000000;
+        $hi &= (int)0x7fffffff;
+        $hi += 0x80000000;
       }
 
       if ($lo & (int)0x80000000) {
-	$lo &= (int)0x7fffffff;
-	$lo += 0x80000000;
+        $lo &= (int)0x7fffffff;
+        $lo += 0x80000000;
       }
 
       $value = $hi * 4294967296 + $lo;
 
       if ($isNeg) {
-	$value = 0 - $value;
+        $value = 0 - $value;
       }
     } else {
 
