diff -ur topmodx_original/include/dlflcore/DLFLCommon.hh topmodx/include/dlflcore/DLFLCommon.hh
--- topmodx_original/include/dlflcore/DLFLCommon.hh	2008-04-10 15:22:15.000000000 +0100
+++ topmodx/include/dlflcore/DLFLCommon.hh	2008-04-10 19:35:02.000000000 +0100
@@ -238,7 +238,7 @@
   };
 
   typedef __gnu_cxx::hash<unsigned int> Hash;
-  typedef __gnu_cxx::hash_map<unsigned int, unsigned int, Hash, eqstr> HashMap;
+  typedef __gnu_cxx::hash_map<unsigned long, unsigned long, Hash, eqstr> HashMap;
 
 } // end namespace
 
diff -ur topmodx_original/include/dlflcore/DLFLFaceVertex.hh topmodx/include/dlflcore/DLFLFaceVertex.hh
--- topmodx_original/include/dlflcore/DLFLFaceVertex.hh	2008-04-10 15:22:15.000000000 +0100
+++ topmodx/include/dlflcore/DLFLFaceVertex.hh	2008-04-10 19:35:02.000000000 +0100
@@ -94,7 +94,7 @@
     void assignID( ) {
       // uID = DLFLFaceVertex::newID();
 			//std::cout << this;
-			uID = (unsigned int) this;
+			uID = (unsigned long) this;
 			//std::cout << "->" << uID << std::endl;
     };
 
diff -ur topmodx_original/include/dlflcore/DLFLObject.hh topmodx/include/dlflcore/DLFLObject.hh
--- topmodx_original/include/dlflcore/DLFLObject.hh	2008-04-10 15:22:15.000000000 +0100
+++ topmodx/include/dlflcore/DLFLObject.hh	2008-04-10 19:35:02.000000000 +0100
@@ -359,7 +359,7 @@
     while ( efirst != elast ) {
 			edgeMap.erase((*efirst)->getID());
       (*efirst)->makeUnique();
-			edgeMap[(*efirst)->getID()] = (unsigned int)(*efirst);
+			edgeMap[(*efirst)->getID()] = (unsigned long)(*efirst);
       ++efirst;
     }
   }
@@ -370,7 +370,7 @@
     while ( ffirst != flast ) {
 			faceMap.erase((*ffirst)->getID());
       (*ffirst)->makeUnique();
-			faceMap[(*ffirst)->getID()] = (unsigned int)(*ffirst);
+			faceMap[(*ffirst)->getID()] = (unsigned long)(*ffirst);
       ++ffirst;
     }
   };
@@ -414,7 +414,7 @@
     // Insert the pointer.
     // **** WARNING!!! **** Pointer will be freed when list is deleted
     edge_list.push_back(edgeptr);
-		edgeMap[edgeptr->getID()] = (unsigned int)edgeptr;
+		edgeMap[edgeptr->getID()] = (unsigned long)edgeptr;
   };
 
   void addFace(const DLFLFace& face);               // Insert a copy
@@ -426,7 +426,7 @@
       // If Face doesn't have a material assigned to it, assign the default material
 	    faceptr->setMaterial(matl_list.front());
     face_list.push_back(faceptr);
-		faceMap[faceptr->getID()] = (unsigned int)faceptr;
+		faceMap[faceptr->getID()] = (unsigned long)faceptr;
   };
 
   DLFLVertexPtr getVertexPtr(uint index) const {
@@ -530,14 +530,14 @@
   void boundaryWalk(uint face_index);
   void vertexTrace(uint vertex_index);
 
-  void readObject( istream& i, istream &imtl = NULL );
+  void readObject( istream& i, istream &imtl = *static_cast< istream* >( NULL ) );
   void readObjectAlt( istream& i );
-  void readDLFL( istream& i, istream &imtl = NULL, bool clearold = true );
+  void readDLFL( istream& i, istream &imtl = *static_cast< istream* >( NULL ), bool clearold = true );
 	bool readMTL( istream &i);
 	bool writeMTL( ostream& o );
 	
-  void writeObject( ostream& o, ostream &omtl = NULL, bool with_normals = true, bool with_tex_coords = true );
-  void writeDLFL(ostream& o, ostream &omtl = NULL, bool reverse_faces = false);
+  void writeObject( ostream& o, ostream &omtl = *static_cast< ostream* >( NULL ), bool with_normals = true, bool with_tex_coords = true );
+  void writeDLFL(ostream& o, ostream &omtl = *static_cast< ostream* >( NULL ), bool reverse_faces = false);
   void writeSTL(ostream& o);
   void writeLG3d(ostream& o, bool select = false); //!< added by dave - for LiveGraphics3D support to embed 3d models into html
   inline void setFilename( const char *filename ) { 
