diff -ur ns-allinone-2.27.orig/nam-1.10/agent.h ns-allinone-2.27/nam-1.10/agent.h
--- ns-allinone-2.27.orig/nam-1.10/agent.h      2004-01-12
19:53:29.000000000 -0500
+++ ns-allinone-2.27/nam-1.10/agent.h   2004-12-16 08:44:17.264152976
-0500
@@ -70,7 +70,7 @@
   inline double width()  {return width_;}
   inline double height() {return height_;}
   virtual void findClosestCornertoPoint(double x, double y,
-               double &corner_x, double &corner_y) const = NULL;
+               double &corner_x, double &corner_y) const = 0;
   virtual void place(double x, double y);
   void label(const char* name, int anchor);
   void color(const char* name);

diff -ur ns-allinone-2.27.orig/ns-2.27/diffusion3/lib/nr/nr.hh ns-allinone-2.27/ns-2.27/diffusion3/lib/nr/nr.hh
--- ns-allinone-2.27.orig/ns-2.27/diffusion3/lib/nr/nr.hh       2004-01-12
19:58:05.000000000 -0500
+++ ns-allinone-2.27/ns-2.27/diffusion3/lib/nr/nr.hh    2004-12-16
08:43:45.631961800 -0500
@@ -43,6 +43,7 @@
 typedef signed int int32_t;
 #endif
 typedef signed short int16_t;
-#if defined (sparc)
+// #if defined (sparc)
+#if defined (__SVR4) && defined (__sun)
 typedef char int8_t;
 #else
 // Conflicts with system declaration of int8_t in Solaris