diff --git a/cmd/prune-junit-xml/prunexml.go b/cmd/prune-junit-xml/prunexml.go
index b6c07d4e134..21d0b0fa312 100644
--- a/cmd/prune-junit-xml/prunexml.go
+++ b/cmd/prune-junit-xml/prunexml.go
@@ -135,6 +135,8 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) {
 		updatedTestcase.Classname = match[1]
 		updatedTestcase.Name = match[2]
 		updatedTestcase.Time = suite.Time
+		updatedSystemOut := ""
+		updatedSystemErr := ""
 		for _, testcase := range suite.TestCases {
 			// The top level testcase element in a JUnit xml file does not have the / character.
 			if testcase.Failure != nil {
@@ -142,10 +144,14 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) {
 				updatedTestcaseFailure.Message = joinTexts(updatedTestcaseFailure.Message, testcase.Failure.Message)
 				updatedTestcaseFailure.Contents = joinTexts(updatedTestcaseFailure.Contents, testcase.Failure.Contents)
 				updatedTestcaseFailure.Type = joinTexts(updatedTestcaseFailure.Type, testcase.Failure.Type)
+				updatedSystemOut = joinTexts(updatedSystemOut, testcase.SystemOut)
+				updatedSystemErr = joinTexts(updatedSystemErr, testcase.SystemErr)
 			}
 		}
 		if failflag {
 			updatedTestcase.Failure = &updatedTestcaseFailure
+			updatedTestcase.SystemOut = updatedSystemOut
+			updatedTestcase.SystemErr = updatedSystemErr
 		}
 		suite.TestCases = append(updatedTestcases, updatedTestcase)
 		updatedTestsuites = append(updatedTestsuites, suite)
diff --git a/cmd/prune-junit-xml/prunexml_test.go b/cmd/prune-junit-xml/prunexml_test.go
index 31f74ffaff6..3dde79a0691 100644
--- a/cmd/prune-junit-xml/prunexml_test.go
+++ b/cmd/prune-junit-xml/prunexml_test.go
@@ -100,7 +100,10 @@ func TestPruneTESTS(t *testing.T) {
 		
 			
 		
-		
+		
+			out A
+			err B
+                
 		
 			FailureContentA
 		
@@ -114,9 +117,13 @@ func TestPruneTESTS(t *testing.T) {
 		
 		
 			RUNNING TestWatchRestartsIfTimeoutNotReached/group/InformerWatcher_survives_closed_watchesA
expected foo, got bar
+			out A
+			err A
                 
 		
 			sub-test failed
+			out B
+			err B
 		
 		
 			sub-test failed
@@ -154,6 +161,8 @@ func TestPruneTESTS(t *testing.T) {
 		
 		
 			RUNNING TestWatchRestartsIfTimeoutNotReached/group/InformerWatcher_survives_closed_watchesA
expected foo, got bar
sub-test failed
+			out A
out B
+			err A
err B
 		
 	
 `