diff --git a/openquake/engine/calculators/hazard/event_based/core.py b/openquake/engine/calculators/hazard/event_based/core.py
index <HASH>..<HASH> 100644
--- a/openquake/engine/calculators/hazard/event_based/core.py
+++ b/openquake/engine/calculators/hazard/event_based/core.py
@@ -293,9 +293,10 @@ class GmfCalculator(object):
         computer = gmf.GmfComputer(
             rupture, r_sites, self.sorted_imts, self.sorted_gsims,
             self.truncation_level, self.correl_model)
+        gnames = map(str, computer.gsims)
         rupids, seeds = zip(*rupid_seed_pairs)
         for rupid, gmfa in zip(rupids, computer.compute(seeds)):
-            for gname in gmfa.dtype.fields:
+            for gname in gnames:
                 gmf_by_imt = gmfa[gname]
                 for imt in self.sorted_imts:
                     for site_id, gmv in zip(r_sites.sids, gmf_by_imt[imt]):
Fixed the event based calculator


Former-commit-id: <I>aea<I>de<I>fb9aa7e<I>d<I>c3b<I>de<I>