--- backup/vtk3DSImporter.cxx   2006-03-03 13:37:40.858373800 -0600
+++ vtk3DSImporter.cxx  2006-03-03 13:43:53.631155900 -0600
@@ -187,7 +187,10 @@
     mesh->anActor = actor = vtkActor::New ();
     actor->SetMapper (polyMapper);
     material = (vtk3DSMatProp *)VTK_LIST_FIND(this->MatPropList, mesh->mtl[0]->name);
-    actor->SetProperty (material->aProperty);
+    if(material)
+      {
+      actor->SetProperty (material->aProperty);
+      }
     renderer->AddActor (actor);
   }
 }
@@ -1142,7 +1145,7 @@
     /* Remove any trailing blanks or quotes */
   for (i = static_cast<int>(strlen(tmp))-1; i >= 0; i--)
     {
-    if (isprint(tmp[i]) && !isspace(tmp[i]) && tmp[i] != '"')
+    if (isprint((unsigned char)tmp[i]) && !isspace((unsigned char)tmp[i]) && tmp[i] != '"')
       {
       break;
       }
@@ -1155,7 +1158,7 @@
     strcpy (name, tmp);

     /* Prefix the letter 'N' to materials that begin with a digit */
-    if (!isdigit (name[0]))
+    if (!isdigit ((unsigned char)name[0]))
       {
       strcpy (tmp, name);
       }
@@ -1168,7 +1171,7 @@
     /* Replace all illegal charaters in name with underscores */
     for (i = 0; tmp[i] != '\0'; i++)
       {
-      if (!isalnum(tmp[i]))
+      if (!isalnum((unsigned char)tmp[i]))
         {
         tmp[i] = '_';
         }
