diff --git a/filter/flickr_filter.module b/filter/flickr_filter.module
index f875596..cb602ea 100644
--- a/filter/flickr_filter.module
+++ b/filter/flickr_filter.module
@@ -152,7 +152,7 @@ function flickr_filter_split_config($string) {
   // Put each setting on its own line.
   $string = str_replace(',', "\n", $string);
   // Break them up around commas.
-  preg_match_all('/([a-zA-Z]+)=([-@\/0-9a-zA-Z :;]+)/', $string, $parts, PREG_SET_ORDER);
+  preg_match_all('/([a-zA-Z.]+)=([-@\/0-9a-zA-Z :;.]+)/', $string, $parts, PREG_SET_ORDER);
   foreach ($parts as $part) {
     // Normalize to lowercase and remove extra spaces.
     $name = strtolower(trim($part[1]));
@@ -240,6 +240,18 @@ function flickr_filter_callback_album($matches) {
   else {
     $config['tags'] = str_replace("/", ",", $config['tags']);
   }
+  if (!isset($config['location'])) {
+    $config['location'][0] = NULL;
+    $config['location'][1] = NULL;
+    $config['location'][2] = NULL;
+  }
+  else {
+    dsm($config['location']);
+    $config['location'] = explode("/", $config['location']);
+    if (!isset($config['location'][2])) {
+      $config['location'][2] = NULL;
+    }
+  }
   if (!isset($config['count'])) {
     $config['count'] = variable_get('flickr_counter', 1) ? 'true' : 'false';
   }
@@ -275,7 +287,8 @@ function flickr_filter_callback_album($matches) {
   }
   $type = flickr_get_id_type($config['id']);
   $config['id'] = $type == 'user' ? flickr_user_find_by_identifier($config['id']) : $config['id'];
-  $output = _flickr_album($type, $config['id'], $config['num'], $config['size'], $config['media'], $config['tags'], '', $config['count'], $config['sort'], $config['heading'], $config['mintitle'], $config['minmetadata'], 0, $config['filter']);
+    dsm($config['location']);
+  $output = _flickr_album($type, $config['id'], $config['num'], $config['size'], $config['media'], $config['tags'], '', $config['count'], $config['sort'], $config['heading'], $config['mintitle'], $config['minmetadata'], 0, $config['filter'], $config['location'][0], $config['location'][1], $config['location'][2]);
   return $output;
 }
 
diff --git a/flickr.inc b/flickr.inc
index 45ff406..b23f33a 100644
--- a/flickr.inc
+++ b/flickr.inc
@@ -493,7 +493,7 @@ function flickr_get_id_type($id) {
 /**
  * Render multiple photos as an album.
  */
-function _flickr_album($type = 'user', $id = '39873962@N08', $show_n = NULL, $size = NULL, $media = 'photos', $tags = '', $tags_user = '', $delta = 'true', $sort = 'unsorted', $heading = 'p', $min_title = NULL, $min_metadata = NULL, $vocab_isset = 0, $filter = NULL, $page = 1) {
+function _flickr_album($type = 'user', $id = '39873962@N08', $show_n = NULL, $size = NULL, $media = 'photos', $tags = '', $tags_user = '', $delta = 'true', $sort = 'unsorted', $heading = 'p', $min_title = NULL, $min_metadata = NULL, $vocab_isset = 0, $filter = NULL, $lat = NULL, $lon = NULL, $radius = NULL, $page = 1) {
   // Remove spaces from tags but save the original for e.g. the block title.
   $tagsfix = $tags;
   $pagefix = $page;
@@ -884,7 +884,7 @@ function _flickr_album($type = 'user', $id = '39873962@N08', $show_n = NULL, $si
         $rest_ok = ($total % variable_get('flickr_per_page', 100)) > 3 * $show_n ? 1 : 0;
         $page = ($sort == 'random' && isset($total) && $total > variable_get('flickr_per_page', 100) && empty($tags)) ? mt_rand(1, floor($total / variable_get('flickr_per_page', 100)) + $rest_ok) : $page;
 // UNCOMMENT THE NEXT LINE FOR DEBUG INFO. ENABLE THE DEVEL MODULE FIRST.
-// dpm('$type=' . $type . ' $delta=' . $delta . ' $id=' . $id . ' $sort=' . $sort . ' $filter=' . $filter . ' $page=' . $page . ' $per_page=' . $per_page . ' $tags=' . $tags . ' $vocab_isset=' . $vocab_isset . ' $total=' . $total);
+dpm('$type=' . $type . ' $delta=' . $delta . ' $id=' . $id . ' $sort=' . $sort . ' $filter=' . $filter . ' $page=' . $page . ' $per_page=' . $per_page . ' $tags=' . $tags . ' $vocab_isset=' . $vocab_isset . ' $total=' . $total . ' $lat=' . $lat . ' $lon=' . $lon . ' $radius=' . $radius);
         // Get a list of "all" the photos. This is cached.
         switch ($type) {
           case "photoset":
@@ -946,6 +946,9 @@ function _flickr_album($type = 'user', $id = '39873962@N08', $show_n = NULL, $si
               'per_page' => $per_page,
               'extras' => 'date_upload,date_taken,license,geo,tags,views,media',
               'media' => $media,
+              'lat' => $lat,
+              'lon' => $lon,
+              'radius' => $radius,
             ));
             if (!$response) {
               return;
