diff --git a/src/interfaces/ecpg/lib/ecpglib.c b/src/interfaces/ecpg/lib/ecpglib.c
index 0643571a0180785fabcd12bfeb3459555c56dc0a..aae621fed45c0df5411083defee161dfa8a82c53 100644
--- a/src/interfaces/ecpg/lib/ecpglib.c
+++ b/src/interfaces/ecpg/lib/ecpglib.c
@@ -434,12 +434,20 @@ ECPGexecute(struct statement * stmt)
 			switch (var->type)
 			{
 				case ECPGt_short:
+					sprintf(buff, "%d", *(short *) var->value);
+					tobeinserted = buff;
+					break;
+
 				case ECPGt_int:
 					sprintf(buff, "%d", *(int *) var->value);
 					tobeinserted = buff;
 					break;
 
 				case ECPGt_unsigned_short:
+					sprintf(buff, "%d", *(unsigned short *) var->value);
+					tobeinserted = buff;
+					break;
+
 				case ECPGt_unsigned_int:
 					sprintf(buff, "%d", *(unsigned int *) var->value);
 					tobeinserted = buff;