Added test case for FAKE_VALUE_FUNC_VARARG.
diff --git a/test/fff_test_c.c b/test/fff_test_c.c
index a4de6ed..3486c86 100644
--- a/test/fff_test_c.c
+++ b/test/fff_test_c.c
@@ -27,7 +27,8 @@
 FAKE_VALUE_FUNC(long, longfunc0);
 FAKE_VALUE_FUNC(enum MYBOOL, enumfunc0);
 FAKE_VALUE_FUNC(struct MyStruct, structfunc0);
-FAKE_VOID_FUNC3_VARARG(voidfunc3var, char *, int, ...);
+FAKE_VOID_FUNC_VARARG(voidfunc3var, char *, int, ...);
+FAKE_VALUE_FUNC_VARARG(int, valuefunc3var, char *, int, ...);
 FAKE_VALUE_FUNC(int, strlcpy3, char* const, const char* const, const size_t);
 FAKE_VOID_FUNC(voidfunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
 
@@ -39,6 +40,7 @@
     RESET_FAKE(enumfunc0);
     RESET_FAKE(structfunc0);
     RESET_FAKE(voidfunc3var);
+    RESET_FAKE(valuefunc3var);
     RESET_FAKE(strlcpy3);
     FFF_RESET_HISTORY();
 }
@@ -96,7 +98,8 @@
     RUN_TEST(FFFTestSuite, can_register_custom_fake);
     RUN_TEST(FFFTestSuite, when_value_custom_fake_called_THEN_it_returns_custom_return_value);
 
-    RUN_TEST(FFFTestSuite, use_vararg_fake_with_different_number_of_arguments);
+    RUN_TEST(FFFTestSuite, use_void_vararg_fake_with_different_number_of_arguments);
+    RUN_TEST(FFFTestSuite, use_value_vararg_fake_with_different_number_of_arguments);
 
     RUN_TEST(FFFTestSuite, can_capture_upto_20_arguments_correctly);
 
diff --git a/test/fff_test_global_c.c b/test/fff_test_global_c.c
index 01112ba..8768fed 100644
--- a/test/fff_test_global_c.c
+++ b/test/fff_test_global_c.c
@@ -14,6 +14,7 @@
     RESET_FAKE(enumfunc0);
     RESET_FAKE(structfunc0);
     RESET_FAKE(voidfunc3var);
+    RESET_FAKE(valuefunc3var);
     RESET_FAKE(strlcpy3);
 
     FFF_RESET_HISTORY();
@@ -64,7 +65,8 @@
     RUN_TEST(FFFTestSuite, can_register_custom_fake);
     RUN_TEST(FFFTestSuite, when_value_custom_fake_called_THEN_it_returns_custom_return_value);
 
-    RUN_TEST(FFFTestSuite, use_vararg_fake_with_different_number_of_arguments);
+    RUN_TEST(FFFTestSuite, use_void_vararg_fake_with_different_number_of_arguments);
+    RUN_TEST(FFFTestSuite, use_value_vararg_fake_with_different_number_of_arguments);
 
     RUN_TEST(FFFTestSuite, can_capture_upto_20_arguments_correctly);
 
diff --git a/test/global_fakes.c b/test/global_fakes.c
index a727096..0e4c07a 100644
--- a/test/global_fakes.c
+++ b/test/global_fakes.c
@@ -7,6 +7,7 @@
 DEFINE_FAKE_VALUE_FUNC0(enum MYBOOL, enumfunc0);
 DEFINE_FAKE_VALUE_FUNC0(struct MyStruct, structfunc0);
 DEFINE_FAKE_VOID_FUNC3_VARARG(voidfunc3var, const char *, int, ...);
+DEFINE_FAKE_VALUE_FUNC3_VARARG(int, valuefunc3var, const char *, int, ...);
 #ifndef __cplusplus
 DEFINE_FAKE_VALUE_FUNC3(int, strlcpy3, char* const, const char* const, const size_t);
 #endif /* __cplusplus */
diff --git a/test/global_fakes.h b/test/global_fakes.h
index d4cf017..3b2d49e 100644
--- a/test/global_fakes.h
+++ b/test/global_fakes.h
@@ -11,6 +11,7 @@
 void voidfunc2(char, char);
 long longfunc0();
 void voidfunc3var(const char *fmt, int argc, ...);
+int valuefunc3var(const char *fmt, int argc, ...);
 void voidfunc20(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
 
 enum MYBOOL { FALSE = 899, TRUE };
@@ -28,6 +29,7 @@
 DECLARE_FAKE_VALUE_FUNC0(enum MYBOOL, enumfunc0);
 DECLARE_FAKE_VALUE_FUNC0(struct MyStruct, structfunc0);
 DECLARE_FAKE_VOID_FUNC3_VARARG(voidfunc3var, const char *, int, ...);
+DECLARE_FAKE_VALUE_FUNC3_VARARG(int, valuefunc3var, const char *, int, ...);
 DECLARE_FAKE_VOID_FUNC20(voidfunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int);
 
 #ifndef __cplusplus
diff --git a/test/test_cases.include b/test/test_cases.include
index b5ba793..61dc0fe 100644
--- a/test/test_cases.include
+++ b/test/test_cases.include
@@ -239,13 +239,21 @@
 }
 
 #ifndef __cplusplus
-TEST_F(FFFTestSuite, use_vararg_fake_with_different_number_of_arguments)
+TEST_F(FFFTestSuite, use_void_vararg_fake_with_different_number_of_arguments)
 {
    voidfunc3var("0 parameters", 0);
    voidfunc3var("1 parameter",  1, 10);
    voidfunc3var("2 parameters", 2, 10, 20);
    voidfunc3var("3 parameters", 3, 10, 20, 30);
 }
+
+TEST_F(FFFTestSuite, use_value_vararg_fake_with_different_number_of_arguments)
+{
+   valuefunc3var("0 parameters", 0);
+   valuefunc3var("1 parameter",  1, 10);
+   valuefunc3var("2 parameters", 2, 10, 20);
+   valuefunc3var("3 parameters", 3, 10, 20, 30);
+}
 #endif /* __cplusplus */
 
 TEST_F(FFFTestSuite, can_capture_upto_20_arguments_correctly)