diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 2f58678..ba418ba 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,7 @@
+2005-02-08 Paul Jakma <paul@dishone.st>
+
+	* ospf_packet.c: (various) Remove unneeded stream_set_putp abuse.
+
 2005-02-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* ospf_packet.c: (ospf_read) Fix bug: must check for state ISM_Down,
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 67fbedd..341c31b 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -348,7 +348,6 @@
   unsigned char digest[OSPF_AUTH_MD5_SIZE];
   struct md5_ctx ctx;
   void *ibuf;
-  unsigned long oldputp;
   u_int32_t t;
   struct crypt_key *ck;
   char *auth_key;
@@ -381,10 +380,7 @@
   md5_finish_ctx (&ctx, digest);
 
   /* Append md5 digest to the end of the stream. */
-  oldputp = stream_get_putp (op->s);
-  stream_set_putp (op->s, ntohs (ospfh->length));
   stream_put (op->s, digest, OSPF_AUTH_MD5_SIZE);
-  stream_set_putp (op->s, oldputp);
 
   /* We do *NOT* increment the OSPF header length. */
   op->length = ntohs (ospfh->length) + OSPF_AUTH_MD5_SIZE;
@@ -2643,7 +2639,7 @@
   /* Set Designated Router. */
   stream_put_ipv4 (s, DR (oi).s_addr);
 
-  p = s->putp;
+  p = stream_get_putp (s);
 
   /* Set Backup Designated Router. */
   stream_put_ipv4 (s, BDR (oi).s_addr);
@@ -2668,10 +2664,7 @@
 
   /* Let neighbor generate BackupSeen. */
   if (flag == 1)
-    {
-      stream_set_putp (s, p);
-      stream_put_ipv4 (s, 0);
-    }
+    stream_putl_at (s, p, 0); /* ipv4 address, normally */
 
   return length;
 }
@@ -2729,8 +2722,7 @@
 	{
 	  nbr->dd_flags &= ~OSPF_DD_FLAG_M;
 	  /* Set DD flags again */
-	  stream_set_putp (s, pp);
-	  stream_putc (s, nbr->dd_flags);
+	  stream_putc_at (s, pp, nbr->dd_flags);
 	}
       return length;
     }
@@ -2905,10 +2897,7 @@
     }
 
   /* Now set #LSAs. */
-  stream_set_putp (s, pp);
-  stream_putl (s, count);
-
-  stream_set_putp (s, s->endp);
+  stream_putl_at (s, pp, count);
 
   if (IS_DEBUG_OSPF_EVENT)
     zlog_debug ("ospf_make_ls_upd: Stop");
