diff --git a/src/libslic3r/Format/OBJ.cpp b/src/libslic3r/Format/OBJ.cpp
index f0a002f50..cb7eb4549 100644
--- a/src/libslic3r/Format/OBJ.cpp
+++ b/src/libslic3r/Format/OBJ.cpp
@@ -7,6 +7,8 @@
 
 #include <string>
 
+#include <boost/log/trivial.hpp>
+
 #ifdef _WIN32
 #define DIR_SEPARATOR '\\'
 #else
@@ -22,7 +24,7 @@ bool load_obj(const char *path, TriangleMesh *meshptr)
     // Parse the OBJ file.
     ObjParser::ObjData data;
     if (! ObjParser::objparse(path, data)) {
-        //    die "Failed to parse $file\n" if !-e $path;
+        BOOST_LOG_TRIVIAL(error) << "load_obj: failed to parse " << path;
         return false;
     }
     
@@ -103,7 +105,7 @@ bool load_obj(const char *path, TriangleMesh *meshptr)
     stl_get_size(&stl);
     mesh.repair();
     if (mesh.facets_count() == 0) {
-        // die "This OBJ file couldn't be read because it's empty.\n"
+        BOOST_LOG_TRIVIAL(error) << "load_obj: This OBJ file couldn't be read because it's empty. " << path;
         return false;
     }
     
diff --git a/src/libslic3r/Format/objparser.cpp b/src/libslic3r/Format/objparser.cpp
index f675bfd66..12cee350d 100644
--- a/src/libslic3r/Format/objparser.cpp
+++ b/src/libslic3r/Format/objparser.cpp
@@ -1,6 +1,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <boost/log/trivial.hpp>
 #include <boost/nowide/cstdio.hpp>
 
 #include "objparser.hpp"
@@ -312,7 +313,7 @@ static bool obj_parseline(const char *line, ObjData &data)
 		break;
 	}
 	default:
-		printf("ObjParser: Unknown command: %c\r\n", c1);
+    	BOOST_LOG_TRIVIAL(error) << "ObjParser: Unknown command: " << c1;
 		break;
 	}
 
@@ -344,12 +345,16 @@ bool objparse(const char *path, ObjData &data)
 					lastLine = i + 1;
 				}
 			lenPrev = len - lastLine;
+			if (lenPrev > 65536) {
+		    	BOOST_LOG_TRIVIAL(error) << "ObjParser: Excessive line length";
+				::fclose(pFile);
+				return false;
+			}
 			memmove(buf, buf + lastLine, lenPrev);
-			assert(lenPrev <= 65536);
 		}
     }
     catch (std::bad_alloc&) {
-        printf("Out of memory\r\n");
+    	BOOST_LOG_TRIVIAL(error) << "ObjParser: Out of memory";
 	}
 	::fclose(pFile);
 
@@ -381,7 +386,8 @@ bool objparse(std::istream &stream, ObjData &data)
         }
     }
     catch (std::bad_alloc&) {
-        printf("Out of memory\r\n");
+    	BOOST_LOG_TRIVIAL(error) << "ObjParser: Out of memory";
+    	return false;
     }
     
     return true;