diff --git a/asn1c/tests/Makefile.am b/asn1c/tests/Makefile.am
index 7c9bcb8fcf7982eed1579667e813dd7c4f426999..78cf68e397666362e5c0d4d9a2bc743c74964a92 100644
--- a/asn1c/tests/Makefile.am
+++ b/asn1c/tests/Makefile.am
@@ -2,9 +2,14 @@
 check_SCRIPTS = check-assembly.sh
 
 TESTS_ENVIRONMENT= ./check-assembly.sh
+
+if CPLUSPLUS_FOUND
+TESTS = check-*.c check-*.cc	## Include C++ test filed (.cc)
+else
 TESTS = check-*.c
+endif
 
-EXTRA_DIST = ${check_SCRIPTS} check-*.c
+EXTRA_DIST = ${check_SCRIPTS} check-*.c*
 
 clean:
 	for t in test-*; do rm -rf $$t; done
diff --git a/asn1c/tests/Makefile.in b/asn1c/tests/Makefile.in
index 6f26e1abfe7e560b1112335707cde265a12af7e3..a64bc54ffd185416a713ced95fbe0d3091107c73 100644
--- a/asn1c/tests/Makefile.in
+++ b/asn1c/tests/Makefile.in
@@ -62,6 +62,8 @@ CC = @CC@
 CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CONFIGURE_DEPENDS = @CONFIGURE_DEPENDS@
+CPLUSPLUS_FOUND_FALSE = @CPLUSPLUS_FOUND_FALSE@
+CPLUSPLUS_FOUND_TRUE = @CPLUSPLUS_FOUND_TRUE@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CXX = @CXX@
@@ -158,8 +160,8 @@ target_os = @target_os@
 target_vendor = @target_vendor@
 check_SCRIPTS = check-assembly.sh
 TESTS_ENVIRONMENT = ./check-assembly.sh
-TESTS = check-*.c
-EXTRA_DIST = ${check_SCRIPTS} check-*.c
+TESTS = check-*.c*
+EXTRA_DIST = ${check_SCRIPTS} check-*.c*
 all: all-am
 
 .SUFFIXES:
diff --git a/asn1c/tests/check-assembly.sh b/asn1c/tests/check-assembly.sh
index a1756b4d65be6ed6ec2b3f26d0cfbd33c88f857e..5a67ab668f513008d7d07527686d2a25c0146269 100755
--- a/asn1c/tests/check-assembly.sh
+++ b/asn1c/tests/check-assembly.sh
@@ -9,7 +9,7 @@
 source=$(echo "$1" | sed -e 's/.*\///')
 testno=`echo "$source" | cut -f2 -d'-' | cut -f1 -d'.'`
 
-args=$(echo "$source" | sed -e 's/\.c$//')
+args=$(echo "$source" | sed -e 's/\.c[c]*$//')
 testdir=test-${args}
 
 OFS=$IFS
@@ -33,15 +33,20 @@ set +x
 
 # Create a Makefile for the project.
 cat > Makefile <<EOM
-CFLAGS=-I. -Wall -g ${CFLAGS} -DEMIT_ASN_DEBUG
-SRCS=`echo *.c`
-OBJS=\${SRCS:.c=.o}
+COMMON_FLAGS= -I. -Wall -g -DEMIT_ASN_DEBUG
+CFLAGS=\${COMMON_FLAGS} ${CFLAGS}
+CXXFLAGS=\${COMMON_FLAGS} ${CXXFLAGS}
+SRCS=`echo *.c*`
+OBJS1=\${SRCS:.c=.o}
+OBJS=\${OBJS1:.cc=.o}
 check-executable: \${OBJS}
 	\${CC} \${CFLAGS} -o check-executable \${OBJS}
 .SUFFIXES:
-.SUFFIXES: .c .o
+.SUFFIXES: .c .cc .o
 .c.o:
 	\${CC} \${CFLAGS} -o \$@ -c \$<
+.cc.o:
+	\${CXX} \${CXXFLAGS} -o \$@ -c \$<
 check: check-executable
 	./check-executable
 clean: