diff --git a/lib/marty/data_conversion.rb b/lib/marty/data_conversion.rb
index <HASH>..<HASH> 100644
--- a/lib/marty/data_conversion.rb
+++ b/lib/marty/data_conversion.rb
@@ -185,8 +185,19 @@ class Marty::DataConversion
 
         v = row[ga]
 
-        # not an association, so we need to convert
-        h[ga] = v && convert(v, type)
+        if v.nil?
+          h[ga] = nil
+        elsif Hash === type
+          # got an id for an association -- FIXME: perhaps this should
+          # not be allowed at all?
+          raise "#{type[:assoc_class].name} with id #{v} not found" unless
+            type[:assoc_class].find_by_id(v)
+
+          h[ga] = v
+        else
+          # not an association, so we need to convert
+          h[ga] = convert(v, type)
+        end
         next
       end
 
diff --git a/lib/marty/version.rb b/lib/marty/version.rb
index <HASH>..<HASH> 100644
--- a/lib/marty/version.rb
+++ b/lib/marty/version.rb
@@ -1,3 +1,3 @@
 module Marty
-  VERSION = "0.4.33"
+  VERSION = "0.4.34"
 end
Added code to handle cases where association id column is sent in for
an import.