diff -wruN orig/audacity/lib-src/portaudio-v19/include/pa_linux_alsa.h audacity/lib-src/portaudio-v19/include/pa_linux_alsa.h
--- orig/audacity/lib-src/portaudio-v19/include/pa_linux_alsa.h	2006-09-04 14:05:58.000000000 -0500
+++ audacity/lib-src/portaudio-v19/include/pa_linux_alsa.h	2006-09-04 05:30:19.000000000 -0500
@@ -63,6 +63,10 @@
 
 void PaAlsa_EnableWatchdog( PaStream *s, int enable );
 
+int PaAlsa_GetStreamInputCard( PaStream *s );
+
+int PaAlsa_GetStreamOutputCard( PaStream *s );
+
 #ifdef __cplusplus
 }
 #endif
diff -wruN orig/audacity/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c audacity/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c
--- orig/audacity/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c	2006-09-04 14:05:58.000000000 -0500
+++ audacity/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c	2006-09-04 05:30:19.000000000 -0500
@@ -3321,3 +3321,40 @@
     stream->threading.useWatchdog = enable;
 #endif
 }
+
+int PaAlsa_GetStreamInputCard( PaStream *s )
+{
+    PaAlsaStream *stream = (PaAlsaStream *) s;
+    snd_pcm_info_t *pcmInfo;
+    int card = -1;
+
+    if( stream->capture.pcm )
+    {
+        snd_pcm_info_alloca( &pcmInfo );
+        if( snd_pcm_info( stream->capture.pcm, pcmInfo ) >= 0 )
+        {
+            card = snd_pcm_info_get_card( pcmInfo );
+        }
+    }
+
+    return card;
+}
+
+int PaAlsa_GetStreamOutputCard( PaStream *s )
+{
+    PaAlsaStream *stream = (PaAlsaStream *) s;
+    snd_pcm_info_t *pcmInfo;
+    int card = -1;
+
+    if( stream->playback.pcm )
+    {
+        snd_pcm_info_alloca( &pcmInfo );
+        if( snd_pcm_info( stream->playback.pcm, pcmInfo ) >= 0 )
+        {
+            card = snd_pcm_info_get_card( pcmInfo );
+        }
+    }
+
+    return card;
+}
+
