diff --git a/NIF_Blocks.h b/NIF_Blocks.h
index 400a065b69966ed2d0fb79bbba9927a11dfb90de..69d3f4ec2711a321451bb3ca9f7c5f33d5e78d10 100644
--- a/NIF_Blocks.h
+++ b/NIF_Blocks.h
@@ -2197,6 +2197,42 @@ private:
 	vector<Key<float> > _keys;
 };
 
+class NiStringsExtraData : public AExtraData {
+public:
+	NiStringsExtraData() {}
+	~NiStringsExtraData() {}
+	string GetBlockType() const { return "NiStringsExtraData"; };
+
+	void Read( istream& file, unsigned int version ) {
+		AExtraData::Read( file, version );
+		uint count = ReadUInt( file );
+		string_data.resize( count );
+		NifStream( string_data, file );
+	}
+	void Write( ostream& file, unsigned int version ) const {
+		AExtraData::Write( file, version );
+		WriteUInt( uint(string_data.size()), file );
+		NifStream( string_data, file );
+	}
+
+	string asString() const {
+		stringstream out;
+		out.setf(ios::fixed, ios::floatfield);
+		out << setprecision(1);
+
+		out << AExtraData::asString()
+			<< "Strings:  " << uint(string_data.size()) << endl;
+
+		for ( uint i = 0; i < string_data.size(); ++i ) {
+			out << "   " << i << ":  " << string_data[i] << endl;
+		}
+
+		return out.str();
+	}
+private:
+	vector<string> string_data;
+};
+
 class NiStringExtraData : public AExtraData {
 public:
 	NiStringExtraData() {
@@ -2326,7 +2362,7 @@ public:
 			<< "Floats:  " << uint(float_data.size()) << endl;
 
 		for ( uint i = 0; i < float_data.size(); ++i ) {
-			out << "   " << i + i << ":  " << float_data[i] << endl;
+			out << "   " << i << ":  " << float_data[i] << endl;
 		}
 
 		return out.str();
@@ -2362,7 +2398,7 @@ public:
 			<< "Ints:  " << uint(int_data.size()) << endl;
 
 		for ( uint i = 0; i < int_data.size(); ++i ) {
-			out << "   " << i + i << ":  " << int_data[i] << endl;
+			out << "   " << i << ":  " << int_data[i] << endl;
 		}
 
 		return out.str();
diff --git a/SConstruct b/SConstruct
index d58140349a8ba327ae8c2a5ba5bf9c57dc29966a..929d973d2ebbf8e2bfc57877e531d7bcce0686eb 100644
--- a/SConstruct
+++ b/SConstruct
@@ -45,7 +45,7 @@ env.StaticLibrary('niflib', Split('niflib.cpp nif_math.cpp NIF_Blocks.cpp NIF_IO
 env.SharedLibrary('_niflib', 'pyniflib.i', LIBS=['niflib'] + python_lib, LIBPATH=['.'] + python_libpath, SWIGFLAGS = '-c++ -python', CPPPATH = ['.'] + python_include, CPPFLAGS = cppflags, SHLIBPREFIX='')
 
 # Here's how to compile niflyze:
-#env.Program('niflyze', 'niflyze.cpp', LIBS=['niflib'], LIBPATH=['.'], CPPFLAGS = cppflags)
+env.Program('niflyze', 'niflyze.cpp', LIBS=['niflib'], LIBPATH=['.'], CPPFLAGS = cppflags)
 
 # A test program:
 #env.Program('test', 'test.cpp', LIBS=['niflib'], LIBPATH=['.'], CPPFLAGS = cppflags)
diff --git a/docsys_extract.cpp b/docsys_extract.cpp
index b74b307e13ac3d63436513b31185621b9aa0f56b..9ce0bbbdee77e30bfec3718f7f0aded87fdeaf28 100644
--- a/docsys_extract.cpp
+++ b/docsys_extract.cpp
@@ -1256,6 +1256,10 @@ IBlock * CreateNiStringPalette() {
 	return new NiStringPalette;
 }
 
+IBlock * CreateNiStringsExtraData() {
+	return new NiStringsExtraData;
+}
+
 IBlock * CreateNiTextKeyExtraData() {
 	return new NiTextKeyExtraData;
 }
@@ -1447,6 +1451,7 @@ void RegisterBlockFactories () {
 	global_block_map["NiStencilProperty"] = CreateNiStencilProperty;
 	global_block_map["NiStringExtraData"] = CreateNiStringExtraData;
 	global_block_map["NiStringPalette"] = CreateNiStringPalette;
+	global_block_map["NiStringsExtraData"] = CreateNiStringsExtraData;
 	global_block_map["NiTextKeyExtraData"] = CreateNiTextKeyExtraData;
 	global_block_map["NiTextureEffect"] = CreateNiTextureEffect;
 	global_block_map["NiTextureTransformController"] = CreateNiTextureTransformController;