diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index 171f9b1..7df7d8a 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -2964,6 +2964,18 @@
 		storeValue((~(As<Int4>(cast) >> 31) & uiValue).value);
 	}
 
+	UInt4::UInt4(RValue<UInt> rhs) : XYZW(this)
+	{
+		RR_DEBUG_INFO_UPDATE_LOC();
+		Value *vector = loadValue();
+		Value *insert = Nucleus::createInsertElement(vector, rhs.value, 0);
+
+		int swizzle[4] = {0, 0, 0, 0};
+		Value *replicate = Nucleus::createShuffleVector(insert, insert, swizzle);
+
+		storeValue(replicate);
+	}
+
 	RValue<UInt4> operator<<(RValue<UInt4> lhs, unsigned char rhs)
 	{
 		RR_DEBUG_INFO_UPDATE_LOC();
diff --git a/src/Reactor/Reactor.cpp b/src/Reactor/Reactor.cpp
index 518c646..516f752 100644
--- a/src/Reactor/Reactor.cpp
+++ b/src/Reactor/Reactor.cpp
@@ -3500,6 +3500,16 @@
 		storeValue(packed);
 	}
 
+	UInt4::UInt4(const UInt &rhs) : XYZW(this)
+	{
+		*this = RValue<UInt>(rhs.loadValue());
+	}
+
+	UInt4::UInt4(const Reference<UInt> &rhs) : XYZW(this)
+	{
+		*this = RValue<UInt>(rhs.loadValue());
+	}
+
 	RValue<UInt4> UInt4::operator=(RValue<UInt4> rhs)
 	{
 		storeValue(rhs.value);
diff --git a/src/Reactor/Reactor.hpp b/src/Reactor/Reactor.hpp
index 1a8b86b..7aed561 100644
--- a/src/Reactor/Reactor.hpp
+++ b/src/Reactor/Reactor.hpp
@@ -1966,6 +1966,9 @@
 		UInt4(const Int4 &rhs);
 		UInt4(const Reference<Int4> &rhs);
 		UInt4(RValue<UInt2> lo, RValue<UInt2> hi);
+		UInt4(RValue<UInt> rhs);
+		UInt4(const UInt &rhs);
+		UInt4(const Reference<UInt> &rhs);
 
 		RValue<UInt4> operator=(RValue<UInt4> rhs);
 		RValue<UInt4> operator=(const UInt4 &rhs);
diff --git a/src/Reactor/SubzeroReactor.cpp b/src/Reactor/SubzeroReactor.cpp
index 5ee2f79..93bc879 100644
--- a/src/Reactor/SubzeroReactor.cpp
+++ b/src/Reactor/SubzeroReactor.cpp
@@ -3007,6 +3007,16 @@
 		storeValue((~(As<Int4>(cast) >> 31) & uiValue).value);
 	}
 
+	UInt4::UInt4(RValue<UInt> rhs) : XYZW(this)
+	{
+		Value *vector = Nucleus::createBitCast(rhs.value, UInt4::getType());
+
+		int swizzle[4] = {0, 0, 0, 0};
+		Value *replicate = Nucleus::createShuffleVector(vector, vector, swizzle);
+
+		storeValue(replicate);
+	}
+
 	RValue<UInt4> operator<<(RValue<UInt4> lhs, unsigned char rhs)
 	{
 		if(emulateIntrinsics)
diff --git a/src/Shader/VertexProgram.cpp b/src/Shader/VertexProgram.cpp
index 67307ef..b3f81a0 100644
--- a/src/Shader/VertexProgram.cpp
+++ b/src/Shader/VertexProgram.cpp
@@ -92,7 +92,7 @@
 		{
 			if(state.textureSampling)
 			{
-				vertexID = Int4(index);
+				vertexID = Int4(Int(index));
 			}
 			else
 			{
