Index: library/mongodb/nsfmongo.c =================================================================== diff -u -N -rc2157faa544a34b546d0fde46e34eb7c7dcdc662 -r88e3e5d40a09fe1d54c115c885c4ec093ba94035 --- library/mongodb/nsfmongo.c (.../nsfmongo.c) (revision c2157faa544a34b546d0fde46e34eb7c7dcdc662) +++ library/mongodb/nsfmongo.c (.../nsfmongo.c) (revision 88e3e5d40a09fe1d54c115c885c4ec093ba94035) @@ -444,19 +444,21 @@ break; } case BSON_TYPE_TIMESTAMP: { - int timestamp, increment, objc = 0; + int timestamp = 0, increment = 0, objc = 0; Tcl_Obj **objv; result = Tcl_ListObjGetElements(interp, value, &objc, &objv); if (result != TCL_OK || objc != 2) { return NsfPrintError(interp, "invalid timestamp: %s", ObjStr(value)); + } else { + result = Tcl_GetIntFromObj(interp, objv[0], ×tamp); + if (result == TCL_OK) { + result = Tcl_GetIntFromObj(interp, objv[1], &increment); + } + if (result == TCL_OK) { + bson_append_timestamp(bbPtr, name, keyLength, (uint32_t)timestamp, (uint32_t)increment); + } } - result = Tcl_GetIntFromObj(interp, objv[0], ×tamp); - if (result == TCL_OK) { - result = Tcl_GetIntFromObj(interp, objv[1], &increment); - } - if (result != TCL_OK) break; - bson_append_timestamp(bbPtr, name, keyLength, (uint32_t)timestamp, (uint32_t)increment); break; } case BSON_TYPE_DOCUMENT: