diff --git a/NEWS b/NEWS
index ff495824b0b0d0ca3a7e1858b6531abcc65c1a0f_TkVXUw==..c77b97fba5fa09f2d157d6e01fa6639ca545425d_TkVXUw== 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,13 @@
 Releases
 ========
 
+v1.10.4 (27th Sep 2013)
+-----------------------
+
+* #179: Fix a missing variable causing errors when an ssh_config file has a
+  non-default AddressFamily set. Thanks to Ed Marshall & Tomaz Muraus for catch
+  & patch.
+
 v1.11.1 (20th Sep 2013)
 -----------------------
 
diff --git a/paramiko/config.py b/paramiko/config.py
index ff495824b0b0d0ca3a7e1858b6531abcc65c1a0f_cGFyYW1pa28vY29uZmlnLnB5..c77b97fba5fa09f2d157d6e01fa6639ca545425d_cGFyYW1pa28vY29uZmlnLnB5 100644
--- a/paramiko/config.py
+++ b/paramiko/config.py
@@ -35,6 +35,6 @@
     Returns the host's fqdn on request as string.
     """
 
-    def __init__(self, config):
+    def __init__(self, config, host=None):
         self.fqdn = None
         self.config = config
@@ -39,5 +39,6 @@
         self.fqdn = None
         self.config = config
+        self.host = host
 
     def __str__(self):
         if self.fqdn is None:
@@ -54,19 +55,27 @@
             fqdn = None
             address_family = self.config.get('addressfamily', 'any').lower()
             if address_family != 'any':
-                family = socket.AF_INET if address_family == 'inet' \
-                    else socket.AF_INET6
-                results = socket.getaddrinfo(host,
-                                             None,
-                                             family,
-                                             socket.SOCK_DGRAM,
-                                             socket.IPPROTO_IP,
-                                             socket.AI_CANONNAME)
-                for res in results:
-                    af, socktype, proto, canonname, sa = res
-                    if canonname and '.' in canonname:
-                        fqdn = canonname
-                        break
+                try:
+                    family = socket.AF_INET if address_family == 'inet' \
+                        else socket.AF_INET6
+                    results = socket.getaddrinfo(
+                        self.host,
+                        None,
+                        family,
+                        socket.SOCK_DGRAM,
+                        socket.IPPROTO_IP,
+                        socket.AI_CANONNAME
+                    )
+                    for res in results:
+                        af, socktype, proto, canonname, sa = res
+                        if canonname and '.' in canonname:
+                            fqdn = canonname
+                            break
+                # giaerror -> socket.getaddrinfo() can't resolve self.host
+                # (which is from socket.gethostname()). Fall back to the
+                # getfqdn() call below.
+                except socket.gaierror:
+                    pass
             # Handle 'any' / unspecified
             if fqdn is None:
                 fqdn = socket.getfqdn()
@@ -216,7 +225,7 @@
             remoteuser = user
 
         host = socket.gethostname().split('.')[0]
-        fqdn = LazyFqdn(config)
+        fqdn = LazyFqdn(config, host)
         homedir = os.path.expanduser('~')
         replacements = {'controlpath':
                         [
diff --git a/tests/test_util.py b/tests/test_util.py
index ff495824b0b0d0ca3a7e1858b6531abcc65c1a0f_dGVzdHMvdGVzdF91dGlsLnB5..c77b97fba5fa09f2d157d6e01fa6639ca545425d_dGVzdHMvdGVzdF91dGlsLnB5 100644
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -329,3 +329,14 @@
                 paramiko.util.lookup_ssh_host_config(host, config),
                 values
             )
+
+    def test_12_config_addressfamily_and_lazy_fqdn(self):
+        """
+        Ensure the code path honoring non-'all' AddressFamily doesn't asplode
+        """
+        test_config = """
+AddressFamily inet
+IdentityFile something_%l_using_fqdn
+"""
+        config = paramiko.util.parse_ssh_config(cStringIO.StringIO(test_config))
+        assert config.lookup('meh') # will die during lookup() if bug regresses