When trying to transfer 1000 copper from inventar with get in a pouch, the check for the weight is missing. You have a nasty block bug there.
One if else block is one level to low, check must be relativ to container corpse check, not above this.
item.c line 536
/* Apart from corpses, certain types of object can not be put in
* containers. */
if ((where->subtype & 1) != SUBTYPE_CONTAINER_CORPSE)
{
/* Containers can't be put in other containers. As per #00099 from
* Shroud, corpses are an exception to this. */
if (what->type == CONTAINER)
{
if (pl)
{
ndi(NDI_UNIQUE, 0, who, "Containers can't be put in other containers!");
}
return NULL;
}
/* where may be a container which cannot hold what. */
else if (where->race &&
where->race != what->race)
{
if (pl)
{
ndi(NDI_UNIQUE, 0, who, "Only ~%s~ can be put into %s!",
where->race, query_name(where, who, ARTICLE_DEFINITE, 0));
}
return NULL;
}
/* Check that where has enough space for what. */
/* TODO: If nrof > 1 perhaps split what to fit? */
else if (where->weight_limit < where->carrying + weight)
{
if (pl)
{
ndi(NDI_UNIQUE, 0, who, "%s %s too heavy to fit in %s!",
query_name(what, who, ARTICLE_DEFINITE, 0),
(nrof > 1) ? "are" : "is",
query_name(where, who, ARTICLE_DEFINITE, 0));
}
return NULL;
}
}