diff --git a/makefile b/Makefile.in
similarity index 96%
rename from makefile
rename to Makefile.in
index 9f6967803b2abfd27b3dc973349a94ed588462a9..5f27eef6e6b1298e7a81dfc44536766a30bf5313 100644
--- a/makefile
+++ b/Makefile.in
@@ -5,28 +5,28 @@
 #version of library 
 VERSION=0.40
 
-CFLAGS  +=  -I./ -Wall -W -Wshadow -Wsign-compare
+VPATH=@srcdir@
+srcdir=@srcdir@
 
-ifndef MAKE
-   MAKE=make
-endif
+# Dropbear takes flags from the toplevel makefile
+CFLAGS += -I$(srcdir)
+
+#CFLAGS  +=  -I./ -Wall -W -Wshadow -Wsign-compare
 
 ifndef IGNORE_SPEED
 
 #for speed 
-CFLAGS += -O3 -funroll-loops
+#CFLAGS += -O3 -funroll-all-loops
 
 #for size 
 #CFLAGS += -Os
 
 #x86 optimizations [should be valid for any GCC install though]
-CFLAGS  += -fomit-frame-pointer
+#CFLAGS  += -fomit-frame-pointer
 
 #debug
 #CFLAGS += -g3
 
-endif
-
 #install as this user
 ifndef INSTALL_GROUP
    GROUP=wheel
diff --git a/bn.ilg b/bn.ilg
deleted file mode 100644
index 3c859f034628cbd48068650700c00528f9ccf190..0000000000000000000000000000000000000000
--- a/bn.ilg
+++ /dev/null
@@ -1,6 +0,0 @@
-This is makeindex, version 2.14 [02-Oct-2002] (kpathsea + Thai support).
-Scanning input file bn.idx....done (79 entries accepted, 0 rejected).
-Sorting entries....done (511 comparisons).
-Generating output file bn.ind....done (82 lines written, 0 warnings).
-Output written in bn.ind.
-Transcript written in bn.ilg.
diff --git a/bn.ind b/bn.ind
deleted file mode 100644
index c099b521d183381cf2082b43ab4207cb441b1e16..0000000000000000000000000000000000000000
--- a/bn.ind
+++ /dev/null
@@ -1,82 +0,0 @@
-\begin{theindex}
-
-  \item mp\_add, \hyperpage{31}
-  \item mp\_add\_d, \hyperpage{56}
-  \item mp\_and, \hyperpage{31}
-  \item mp\_clear, \hyperpage{12}
-  \item mp\_clear\_multi, \hyperpage{13}
-  \item mp\_cmp, \hyperpage{25}
-  \item mp\_cmp\_d, \hyperpage{26}
-  \item mp\_cmp\_mag, \hyperpage{23}
-  \item mp\_div, \hyperpage{32}
-  \item mp\_div\_2, \hyperpage{28}
-  \item mp\_div\_2d, \hyperpage{30}
-  \item mp\_div\_d, \hyperpage{56}
-  \item mp\_dr\_reduce, \hyperpage{45}
-  \item mp\_dr\_setup, \hyperpage{45}
-  \item MP\_EQ, \hyperpage{23}
-  \item mp\_error\_to\_string, \hyperpage{9}
-  \item mp\_expt\_d, \hyperpage{47}
-  \item mp\_exptmod, \hyperpage{47}
-  \item mp\_exteuclid, \hyperpage{55}
-  \item mp\_gcd, \hyperpage{55}
-  \item mp\_get\_int, \hyperpage{20}
-  \item mp\_grow, \hyperpage{17}
-  \item MP\_GT, \hyperpage{23}
-  \item mp\_init, \hyperpage{11}
-  \item mp\_init\_copy, \hyperpage{14}
-  \item mp\_init\_multi, \hyperpage{13}
-  \item mp\_init\_set, \hyperpage{21}
-  \item mp\_init\_set\_int, \hyperpage{21}
-  \item mp\_init\_size, \hyperpage{15}
-  \item mp\_int, \hyperpage{10}
-  \item mp\_invmod, \hyperpage{56}
-  \item mp\_jacobi, \hyperpage{56}
-  \item mp\_lcm, \hyperpage{56}
-  \item mp\_lshd, \hyperpage{30}
-  \item MP\_LT, \hyperpage{23}
-  \item MP\_MEM, \hyperpage{9}
-  \item mp\_mod, \hyperpage{39}
-  \item mp\_mod\_d, \hyperpage{56}
-  \item mp\_montgomery\_calc\_normalization, \hyperpage{42}
-  \item mp\_montgomery\_reduce, \hyperpage{42}
-  \item mp\_montgomery\_setup, \hyperpage{42}
-  \item mp\_mul, \hyperpage{33}
-  \item mp\_mul\_2, \hyperpage{28}
-  \item mp\_mul\_2d, \hyperpage{29}
-  \item mp\_mul\_d, \hyperpage{56}
-  \item mp\_n\_root, \hyperpage{48}
-  \item mp\_neg, \hyperpage{31, 32}
-  \item MP\_NO, \hyperpage{9}
-  \item MP\_OKAY, \hyperpage{9}
-  \item mp\_or, \hyperpage{31}
-  \item mp\_prime\_fermat, \hyperpage{49}
-  \item mp\_prime\_is\_divisible, \hyperpage{49}
-  \item mp\_prime\_is\_prime, \hyperpage{51}
-  \item mp\_prime\_miller\_rabin, \hyperpage{50}
-  \item mp\_prime\_next\_prime, \hyperpage{51}
-  \item mp\_prime\_rabin\_miller\_trials, \hyperpage{50}
-  \item mp\_prime\_random, \hyperpage{51}
-  \item mp\_prime\_random\_ex, \hyperpage{52}
-  \item mp\_radix\_size, \hyperpage{53}
-  \item mp\_read\_radix, \hyperpage{53}
-  \item mp\_read\_unsigned\_bin, \hyperpage{54}
-  \item mp\_reduce, \hyperpage{40}
-  \item mp\_reduce\_2k, \hyperpage{46}
-  \item mp\_reduce\_2k\_setup, \hyperpage{46}
-  \item mp\_reduce\_setup, \hyperpage{40}
-  \item mp\_rshd, \hyperpage{30}
-  \item mp\_set, \hyperpage{19}
-  \item mp\_set\_int, \hyperpage{20}
-  \item mp\_shrink, \hyperpage{16}
-  \item mp\_sqr, \hyperpage{35}
-  \item mp\_sub, \hyperpage{31}
-  \item mp\_sub\_d, \hyperpage{56}
-  \item mp\_to\_unsigned\_bin, \hyperpage{54}
-  \item mp\_toradix, \hyperpage{53}
-  \item mp\_unsigned\_bin\_size, \hyperpage{54}
-  \item MP\_VAL, \hyperpage{9}
-  \item mp\_xor, \hyperpage{31}
-  \item MP\_YES, \hyperpage{9}
-
-\end{theindex}
diff --git a/bn.pdf b/bn.pdf
deleted file mode 100644
index 7e0a85f935ccb84af8c9848d8922f2ba508bd4af..0000000000000000000000000000000000000000
Binary files a/bn.pdf and /dev/null differ
diff --git a/bn_mp_clear.c b/bn_mp_clear.c
index ae7c50afe8c1097ba2d6b32cb178a20384555e7b..000bd065aaec88903b4ff0101a9e0b4c5bfefa9b 100644
--- a/bn_mp_clear.c
+++ b/bn_mp_clear.c
@@ -19,14 +19,17 @@
 void
 mp_clear (mp_int * a)
 {
-  int i;
+  volatile mp_digit *p;
+  int len;
 
   /* only do anything if a hasn't been freed previously */
   if (a->dp != NULL) {
     /* first zero the digits */
-    for (i = 0; i < a->used; i++) {
-        a->dp[i] = 0;
-    }
+	len = a->alloc;
+	p = a->dp;
+	while (len--) {
+		*p++ = 0;
+	}
 
     /* free ram */
     XFREE(a->dp);
diff --git a/poster.pdf b/poster.pdf
deleted file mode 100644
index c1f04c75d162492f428b69b937343bb1f5782db1..0000000000000000000000000000000000000000
Binary files a/poster.pdf and /dev/null differ
diff --git a/tommath.h b/tommath.h
index 3c00b9e1324d5a145a2d21e2ecb250fe5a2cc50e..1ead3d04bf5847f8f8bacc924ec276fafc9f1aec 100644
--- a/tommath.h
+++ b/tommath.h
@@ -21,7 +21,7 @@
 #include <ctype.h>
 #include <limits.h>
 
-#include <tommath_class.h>
+#include "tommath_class.h"
 
 #ifndef MIN
    #define MIN(x,y) ((x)<(y)?(x):(y))
diff --git a/tommath.pdf b/tommath.pdf
deleted file mode 100644
index a9edeb69eea8d167e3bf3f91558b463fb4323348..0000000000000000000000000000000000000000
Binary files a/tommath.pdf and /dev/null differ
diff --git a/tommath_class.h b/tommath_class.h
index 166dd80e5eadb68ac304449e7a8eabc57e622b73..a4e275a3ae8948fa075457864fa225d308000006 100644
--- a/tommath_class.h
+++ b/tommath_class.h
@@ -988,12 +988,18 @@
 #ifdef LTM3
 #define LTM_LAST
 #endif
-#include <tommath_superclass.h>
-#include <tommath_class.h>
+#include "tommath_superclass.h"
+#include "tommath_class.h"
 #else
 #define LTM_LAST
 #endif
 
+/* Dropbear doesn't need these. */
+#undef BN_MP_KARATSUBA_MUL_C
+#undef BN_MP_KARATSUBA_SQR_C
+#undef BN_MP_TOOM_MUL_C
+#undef BN_MP_TOOM_SQR_C
+
 /* $Source: /cvs/libtom/libtommath/tommath_class.h,v $ */
 /* $Revision: 1.3 $ */
 /* $Date: 2005/07/28 11:59:32 $ */