There are couple of verbs in Croatian that show a bit bizarre behavior (such behavior is not limited to Croatian and even to related Slavic languages, though).
First, there are verbs that can have two distinct objects in A at the same time. Common verbs and verb pairs with that feature are:
pitati ~ u- («) ask
učiti ~ na- («) learn, teach
In all such verbs, two objects are clearly distinguished: one object is a person (or animal) and another is not. For example:
Goran je pitao nešto Anu. Goran asked Ana something.
In this sentence, both Ana and nešto something are in A, but one subject is "who", and another "what", so there's no ambiguity.
Ana je učila Gorana plivati. Ana taught Goran to swim.
Here, instead of the second object ("what"), we have a verb in inf, so it's clear what is taught.
Now, you're probably scratching your head: doesn't učiti mean learn, study? Yes, it does. It has both meanings.
When the verb pair učiti ~ na- («) is used with a single object in A, which is a thing ("what"), it means learn, study. However, when its object is a person (or animal), then it means teach, and then another object in A ("what") can be used to express what is taught. (The second object is not mandatory). The "what" object in both "configurations" can be a verb in inf. Compare:
Ana uči Gorana plivati. Ana is teaching Goran to swim.
Goran uči plivati. Goran is learning to swim.
Therefore, whenever this verb pair gets an object that's a person (or animal), its meaning shifts!
But what if someone is a teacher, and we want to say e.g. Ivan teaches math? One solution is to express a person-object with some generic word, to shift the verb meaning. For instance, you can hear:
Ivan uči djecu matematiku. Ivan teaches math to children.
(Beware, here the Croatian noun djecu is in A, while English has to, often corresponding to the Croatian DL case.)
We cannot say just Ivan uči matematiku, since it has exactly the opposite meaning, however, we can in principle say (but this sounds quite incomplete to me):
Ivan uči djecu. Ivan teaches children.
Another way is to use a more formal verb pair:
predavati (predaje) ~ predati teach, give lecture
So we can say:
Ivan predaje matematiku. Ivan teaches math.
There are more verbs that have two opposite meanings, depending on other words around them. Common ones are:
iznajmljivati (iznajmljuje) ~ iznajmiti («) rent
posuđivati (posuđuje) ~ posuditi («) borrow/lend ®
Both verb pairs have two meanings, depending on the cases used. What is rented/borrowed/lent is always in A. If you add a person (or animal, but also an institution, and so on) in DL, it denotes someone receiving:
Posudio sam kišobran Ani. I've lent the umbrella to Ana.
Iznajmili smo im kuću. We've rented (out) the house to them.
However, if you instead of DL use od¨ + G, the meaning shifts, and G represents the source (i.e. the owner):
Ana je posudila kišobran od mene. Ana borrowed the umbrella from me.
Iznajmili su kuću od nas. They've rented the house from us.
It's interesting that English rent shows the same double meaning. If you use the verbs without DL or od¨ + G, the meaning is ambiguous, and depends on the context.
(There's a suggestion to use another verb pair in the formal Croatian – unajmljivati (unajmljuje) ~ unajmiti («) – for the meaning rent something from someone, but virtually nobody uses it.)
The Croatian verb pairs for rent and borrow/lend are ‘round-trip’ verbs, that is, they imply that the state of things will be restored after some time. Therefore, they are used with ‘round-trip periods’, that is, preposition na¨ + A:
Iznajmili smo im kuću na dva tjedna. We've rented (out) the house to them for two weeks.
® In Serbia, and often in Bosnia, pozajmljivati (pozajmljuje) ~ pozajmiti («) is used in meaning borrow/lend.