diff --git a/main/core_unreal.c b/main/core_unreal.c
index 1f5c202ba554f0dab190bdadce9b11ee27d88749..377abd1ffac0430312bbaa0e5e819dd56df11246 100644
--- a/main/core_unreal.c
+++ b/main/core_unreal.c
@@ -566,6 +566,11 @@ int ast_unreal_indicate(struct ast_channel *ast, int condition, const void *data
 			res = -1;
 		}
 		break;
+	case AST_CONTROL_PVT_CAUSE_CODE:
+		/* Return -1 so that asterisk core will correctly set up hangupcauses. */
+		unreal_queue_indicate(p, ast, condition, data, datalen);
+		res = -1;
+		break;
 	default:
 		res = unreal_queue_indicate(p, ast, condition, data, datalen);
 		break;