diff --git a/src/gdd/gdd.cc b/src/gdd/gdd.cc index 1a84808c6..438986ad1 100644 --- a/src/gdd/gdd.cc +++ b/src/gdd/gdd.cc @@ -1355,11 +1355,14 @@ gddStatus gdd::put ( const gdd * dd ) } aitUint32 srcAvailSize = srcElemCount - unusedSrcBelow; - if ( srcAvailSize > this->getBounds()->size() ) { - srcCopySize = this->getBounds()->size(); - } - else { - srcCopySize = srcAvailSize; + { + aitUint32 destSize = this->getBounds()->size(); + if ( destSize > 0 && srcAvailSize > destSize ) { + srcCopySize = destSize; + } + else { + srcCopySize = srcAvailSize; + } } if ( dataVoid() == NULL )