diff --git a/LICENCE b/LICENCE
index 19d4c74..f99f5b4 100644
--- a/LICENCE
+++ b/LICENCE
@@ -76,14 +76,6 @@
     POSSIBILITY OF SUCH DAMAGES.
 
 2)
-    The 32-bit CRC implementation in crc32.c is due to Gary S. Brown.
-    Comments in the file indicate it may be used for any purpose without
-    restrictions:
-
-     * COPYRIGHT (C) 1986 Gary S. Brown.  You may use this program, or
-     * code or tables extracted from it, as desired without restriction.
-
-3)
     The 32-bit CRC compensation attack detector in deattack.c was
     contributed by CORE SDI S.A. under a BSD-style license.
 
@@ -104,7 +96,7 @@
      * Ariel Futoransky <futo@core-sdi.com>
      * <http://www.core-sdi.com>
 
-4)
+3)
     ssh-keygen was contributed by David Mazieres under a BSD-style
     license.
 
@@ -114,7 +106,7 @@
      * permitted provided that due credit is given to the author and the
      * OpenBSD project by leaving this copyright notice intact.
 
-5)
+4)
     The Rijndael implementation by Vincent Rijmen, Antoon Bosselaers
     and Paulo Barreto is in the public domain and distributed
     with the following license:
@@ -141,12 +133,10 @@
      * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
      * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-6)
-    One component of the ssh source code is under a 4-clause BSD license,
+5)
+    One component of the ssh source code is under a 3-clause BSD license,
     held by the University of California, since we pulled these parts from
-    original Berkeley code.  The Regents of the University of California
-    have declared that term 3 is no longer enforceable on their source code,
-    but we retain that license as is.
+    original Berkeley code.
 
      * Copyright (c) 1983, 1990, 1992, 1993, 1995
      *      The Regents of the University of California.  All rights reserved.
@@ -159,11 +149,7 @@
      * 2. Redistributions in binary form must reproduce the above copyright
      *    notice, this list of conditions and the following disclaimer in the
      *    documentation and/or other materials provided with the distribution.
-     * 3. All advertising materials mentioning features or use of this software
-     *    must display the following acknowledgement:
-     *      This product includes software developed by the University of
-     *      California, Berkeley and its contributors.
-     * 4. Neither the name of the University nor the names of its contributors
+     * 3. Neither the name of the University nor the names of its contributors
      *    may be used to endorse or promote products derived from this software
      *    without specific prior written permission.
      *
@@ -179,6 +165,48 @@
      * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      * SUCH DAMAGE.
 
+6)
+    The progresssmeter code used by scp(1) and sftp(1) is copyright by
+    the NetBSD Foundation.
+
+     * Copyright (c) 1997-2003 The NetBSD Foundation, Inc.
+     * All rights reserved.
+     *
+     * This code is derived from software contributed to The NetBSD Foundation
+     * by Luke Mewburn.
+     *
+     * This code is derived from software contributed to The NetBSD Foundation
+     * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
+     * NASA Ames Research Center.
+     *
+     * Redistribution and use in source and binary forms, with or without
+     * modification, are permitted provided that the following conditions
+     * are met:
+     * 1. Redistributions of source code must retain the above copyright
+     *    notice, this list of conditions and the following disclaimer.
+     * 2. Redistributions in binary form must reproduce the above copyright
+     *    notice, this list of conditions and the following disclaimer in the
+     *    documentation and/or other materials provided with the distribution.
+     * 3. All advertising materials mentioning features or use of this software
+     *    must display the following acknowledgement:
+     *	This product includes software developed by the NetBSD
+     *	Foundation, Inc. and its contributors.
+     * 4. Neither the name of The NetBSD Foundation nor the names of its
+     *    contributors may be used to endorse or promote products derived
+     *    from this software without specific prior written permission.
+     *
+     * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+     * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+     * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+     * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+     * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+     * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+     * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+     * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+     * POSSIBILITY OF SUCH DAMAGE.
+
 7)
     Remaining components of the software are provided under a standard
     2-term BSD licence with the following names as copyright holders:
@@ -212,3 +240,6 @@
      * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
      * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
      * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+------
+$OpenBSD: LICENCE,v 1.14 2003/06/11 11:23:07 djm Exp $
