                         shapes.append(s)
                     }
 
-                    clear()
+                    state = State()
                     scanner.scanUpToCharactersFromSet(ObjLoader.newLineCharacters, intoString: &state.objectName)
                     moveToNextLine()
                     continue

            if let s = buildShape(state.objectName, vertices: state.vertices, normals: state.normals, textureCoords: state.textureCoords, faces: state.faces) {
                shapes.append(s)
            }
            clear()

            running = false
        } catch let e {
            running = false
            clear()
            throw e
        }
        return shapes


        resetState()

        do {
            while false == scanner.atEnd {
                var marker: NSString?
