diff --git a/ChangeLog b/ChangeLog
index 844ab6a036..5dd1dc788c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2005-02-17  Tim-Philipp Müller  <tim at centricular dot net>
+
+	* gst/avi/gstavidemux.c: (gst_avi_demux_invert):
+	  Declare variables at beginning of block and make gcc-2.95 happy
+	  (fixes # 167482, patch by Gergely Nagy).
+	  
+	* gst/tcp/gsttcpclientsrc.c:
+	* gst/tcp/gsttcpclientsrc.h:
+	  Move some includes into the header, so that struct sockaddr_in is
+	  defined when it should be defined on FreeBSD as well (fixes
+	  #167483).
+	  
+	* gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive):
+	  Don't pass uninitialised values to setsockopt() here either.
+
 2005-02-17  Luca Ognibene  <luogni at tin dot it>
 
 	Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 2fdd16bdff..99c14cc88e 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -2005,10 +2005,11 @@ swap_line (guint8 * d1, guint8 * d2, guint8 * tmp, gint bytes)
 static GstBuffer *
 gst_avi_demux_invert (avi_stream_context * stream, GstBuffer * buf)
 {
-  buf = gst_buffer_copy_on_write (buf);
   gint y, h = stream->height, w = stream->width;
   guint8 *tmp = g_malloc (w);
 
+  buf = gst_buffer_copy_on_write (buf);
+
   for (y = 0; y < h / 2; y++) {
     swap_line (GST_BUFFER_DATA (buf) + w * y,
         GST_BUFFER_DATA (buf) + w * (h - 1 - y), tmp, w);