diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 302db80a663dfff76718e64c68761224fdfde016..cc0273832a3deae46aea3791cb481732e2ca4475 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -1426,7 +1426,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
                         int nextOffset;
                         updateMemberOffset(type, glslangType, offset, nextOffset);
                         if (offset >= 0)
-                            builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutOffset);
+                            builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset);
                         offset = nextOffset;
                     }
 
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index f9349893fd786e864b18ab05a5b531324fbf6f16..37a027a4016f3a2640115b449fa2b8a94c023301 100644
--- a/glslang/Include/revision.h
+++ b/glslang/Include/revision.h
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "3.0.746"
-#define GLSLANG_DATE "09-Sep-2015"
+#define GLSLANG_REVISION "3.0.747"
+#define GLSLANG_DATE "11-Sep-2015"