diff --git a/src/thingdef/thingdef_codeptr.cpp b/src/thingdef/thingdef_codeptr.cpp
index fc157c92b..117207302 100644
--- a/src/thingdef/thingdef_codeptr.cpp
+++ b/src/thingdef/thingdef_codeptr.cpp
@@ -1875,6 +1875,7 @@ enum SIX_Flags
 	SIXF_NOPOINTERS				= 0x00400000,
 	SIXF_ORIGINATOR				= 0x00800000,
 	SIXF_TRANSFERSPRITEFRAME	= 0x01000000,
+	SIXF_TRANSFERROLL			= 0x02000000,
 };
 
 static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
@@ -2027,6 +2028,11 @@ static bool InitSpawnedItem(AActor *self, AActor *mo, int flags)
 		mo->frame = self->frame;
 	}
 
+	if (flags & SIXF_TRANSFERROLL)
+	{
+		mo->roll = self->roll;
+	}
+
 	return true;
 }
 
diff --git a/wadsrc/static/actors/constants.txt b/wadsrc/static/actors/constants.txt
index 1604b5c83..aedd01284 100644
--- a/wadsrc/static/actors/constants.txt
+++ b/wadsrc/static/actors/constants.txt
@@ -73,6 +73,7 @@ const int SXF_SETTRACER =				1 << 21;
 const int SXF_NOPOINTERS =				1 << 22;
 const int SXF_ORIGINATOR =				1 << 23;
 const int SXF_TRANSFERSPRITEFRAME	=	1 << 24;
+const int SXF_TRANSFERROLL =			1 << 25;
 
 // Flags for A_Chase
 const int CHF_FASTCHASE = 1;