A quick scan of the PostgreSQL online docs revealed a small detail that I didn't know which is that pg_dump creates .dmp files that are relative to template0.
So when I retried the restore I typed the following :
createdb -T template0 dbname
and then ran the restore as before.
All now hunky-dorie.
I think my problem stemmed from the fact that I have password authentication set up in postgres. I think that some of the DML statements in the dump were trying to do something to pre-existing functions in template1 owned by another user.
I post this in case it helps someone sometime!
R.