diff --git a/proxy/proxy_common.h b/proxy/proxy_common.h
index 0a52810..da5c788 100644
--- a/proxy/proxy_common.h
+++ b/proxy/proxy_common.h
@@ -75,14 +75,14 @@
 
 /* this function is called to update the select file descriptor sets
  * with those of the proxified connection sockets that are currently managed */
-extern void  proxy_manager_select_fill( int     *pcount, 
-                                        fd_set*  read_fds, 
-                                        fd_set*  write_fds, 
+extern void  proxy_manager_select_fill( int     *pcount,
+                                        fd_set*  read_fds,
+                                        fd_set*  write_fds,
                                         fd_set*  err_fds);
 
 /* this function is called to act on proxified connection sockets when network events arrive */
-extern void  proxy_manager_poll( fd_set*  read_fds, 
-                                 fd_set*  write_fds, 
+extern void  proxy_manager_poll( fd_set*  read_fds,
+                                 fd_set*  write_fds,
                                  fd_set*  err_fds );
 
 /* this function checks that one can connect to a given proxy. It will simply try to connect()
diff --git a/proxy/proxy_http_rewriter.c b/proxy/proxy_http_rewriter.c
index a45a5de..6c43036 100644
--- a/proxy/proxy_http_rewriter.c
+++ b/proxy/proxy_http_rewriter.c
@@ -442,7 +442,7 @@
 
         method = strsep(&p, " ");
         if (p == NULL) {
-            PROXY_LOG("%s: can't parse method in '%'", 
+            PROXY_LOG("%s: can't parse method in '%'",
                       root->name, line);
             return DATA_ERROR;
         }
@@ -690,7 +690,7 @@
         conn->body_mode = BODY_UNTIL_CLOSE;
     }
     D("%s: body_length=%lld body_mode=%s",
-      root->name, conn->body_length, 
+      root->name, conn->body_length,
       body_mode_str[conn->body_mode]);
 
     proxy_connection_rewind(root);
@@ -832,7 +832,7 @@
     if (avail <= 0) {
         /* wait for some flush */
         conn->body_is_full = 1;
-        D("%s: waiting to flush %d bytes", 
+        D("%s: waiting to flush %d bytes",
           root->name, current);
         return DATA_NEED_MORE;
     }
@@ -849,7 +849,7 @@
             /* a disconnection here is normal and signals the
              * end of the body */
             conn->body_total    += root->str_recv;
-            D("%s: body completed by close (%lld bytes)", 
+            D("%s: body completed by close (%lld bytes)",
                 root->name, conn->body_total);
             conn->body_is_closed = 1;
             ret = DATA_COMPLETED;
@@ -864,7 +864,7 @@
             conn->chunk_length -= avail;
 
             if (conn->chunk_length == 0) {
-                D("%s: chunk completed (%lld bytes)", 
+                D("%s: chunk completed (%lld bytes)",
                     root->name, conn->chunk_total);
                 conn->body_total  += conn->chunk_total;
                 conn->chunk_total  = 0;
@@ -878,7 +878,7 @@
             conn->body_total  += avail;
 
             if (conn->body_length == 0) {
-                D("%s: body completed (%lld bytes)", 
+                D("%s: body completed (%lld bytes)",
                     root->name, conn->body_total);
                 conn->body_is_closed = 1;
                 ret = DATA_COMPLETED;
diff --git a/proxy/proxy_int.h b/proxy/proxy_int.h
index b22cdf2..921ef19 100644
--- a/proxy/proxy_int.h
+++ b/proxy/proxy_int.h
@@ -105,7 +105,7 @@
 proxy_connection_done( ProxyConnection*  conn );
 
 /* free the proxy connection object. this will also
- * close the corresponding socket unless the 
+ * close the corresponding socket unless the
  * 'keep_alive' flag is set to TRUE.
  */
 extern void
